Добавьте 'Универсальный Обработчик' к Вашему веб-проекту, назовите его чем-то как Image.ashx. Реализуйте его как это:
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
using(Image image = GetImage(context.Request.QueryString["ID"]))
{
context.Response.ContentType = "image/jpeg";
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
}
public bool IsReusable
{
get
{
return true;
}
}
}
Теперь просто реализуют метод GetImage для загрузки изображения данным идентификатором, и можно использовать
<asp:Image runat="server" ImageUrl="~/Image.ashx?ID=myImageId" />
для отображения его. Вы могли бы хотеть думать о реализации некоторой формы кэширования в обработчике также. И помните, хотите ли Вы изменить формат изображения на PNG, необходимо использовать промежуточный MemoryStream (потому что PNGs требуют, чтобы seekable поток был сохранен).
Вам необходимо использовать #!/bin/bash
в качестве первой строки в вашем скрипте. Если вы этого не сделаете или используете #!/bin/sh
, сценарий будет выполняться оболочкой Bourne, и его echo
не распознает опцию -e
. В общем, рекомендуется, чтобы все новые сценарии использовали printf
вместо echo
, если важна переносимость.
В Ubuntu sh
предоставляется по символической ссылке на /bin/dash
.
Используйте
псевдоним echo / usr / bin / echo
, чтобы заставить 'echo' вызывать coreutils 'echo, который интерпретирует параметр' -e '.