У нас есть веб-сайт umbraco MVC, с которым мы пытаемся использовать ImageResizer. Чтобы загруженные файлы не находились в общедоступной области, изображения хранятся за пределами веб-корня, и мы используем контроллер для их доставки в браузер (например, URL-адрес изображения на странице будет выглядеть примерно так: <img src="/umbraco/surface/AttachmentSurface/ShowImage/999?" alt="Here there be an image, yarrr!">
)
Действие ShowImage выглядит примерно так:
public ActionResult ShowImage(int id)
{
using (DBContext db = new DBContext())
{
Attachment a = db.Attachments.FirstOrDefault(x.ID == id);
if (a != null)
{
byte[] file = System.IO.File.ReadAllBytes(System.IO.Path.Combine(System.Configuration.ConfigurationManager.AppSettings["UploadPath"], a.Path, a.FileName));
return this.File(file, a.MimeType);
}
}
}
Если мы используем URL API для общедоступного изображения (например, <img src="/images/kitty.jpg?width=33&height=33&mode=crop" alt="Here there be kitties, yarrr!">
), то все работает так, как ожидалось.
Однако мы безуспешно пытались использовать URL API для изменения размера наших изображений, предоставляемых контроллером (например, <img src="/umbraco/surface/AttachmentSurface/ShowImage/999?width=33&height=33&mode=crop" alt="Here there be an image, yarrr!">
).
Единственный способ обойти это — использовать управляемый API и изменить размер изображения перед доставкой? Кажется, я помню, что в документации говорилось что-то о том, что использовать ее из действия MVC - плохая идея...
Спасибо за любую помощь.