Proxying edited images to prevent CORS errors

This commit is contained in:
Sebastien Ros
2014-02-18 15:22:06 -08:00
parent 1f81355afd
commit d918aec6e1
3 changed files with 18 additions and 3 deletions

View File

@@ -1,9 +1,11 @@
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Web.Mvc;
using Orchard.ContentManagement;
using Orchard.ImageEditor.Models;
using Orchard.MediaLibrary;
using Orchard.MediaLibrary.Models;
using Orchard.MediaLibrary.Services;
using Orchard.Mvc;
@@ -91,5 +93,20 @@ namespace Orchard.ImageEditor.Controllers {
return Json(true);
}
public ActionResult Proxy(string url) {
if (!Services.Authorizer.Authorize(Permissions.ManageMediaContent))
return HttpNotFound();
using (var wc = new WebClient()) {
try {
var data = wc.DownloadData(url);
return new FileContentResult(data, "image");
}
catch {
return HttpNotFound();
}
}
}
}
}

View File

@@ -41,7 +41,7 @@
<div id="image-editor-container" class="editor-shadow">
<div id="image-editor-image-wrapper" >
@*<canvas id="image-editor-image" class="canvas-shadow"></canvas>*@
<img id="image-editor-image" class="canvas-shadow" src="@Url.Content(mediaPart.MediaUrl)">
<img id="image-editor-image" class="canvas-shadow" src="@Url.Action("Proxy", "Admin", new { url = Url.Content(mediaPart.MediaUrl) })">
</div>
</div>

View File

@@ -2,7 +2,6 @@
using System.Linq;
using System.Web.Mvc;
using Orchard.ContentManagement;
using Orchard.ContentManagement.MetaData.Models;
using Orchard.Localization;
using Orchard.Logging;
using Orchard.MediaLibrary.Models;
@@ -12,7 +11,6 @@ using Orchard.Mvc;
using Orchard.Themes;
using Orchard.UI.Navigation;
using Orchard.ContentManagement.MetaData;
using System.Collections.Generic;
using Orchard.Validation;
namespace Orchard.MediaLibrary.Controllers {