#jquery #image #asp.net-mvc-2
#jquery #изображение #asp.net-mvc-2
Вопрос:
Я должен показывать изображение в его фактическом размере в div в том же виде, когда нажимаю на его изображение большого пальца. Я объясню свой сценарий. Я использую asp.net приложение mvc 2. На мой взгляд, у меня есть изображения изображений, которые хранятся в базе данных как byte[], а также fileId как скрытое поле. При нажатии на изображение большого пальца мне нужно показать фактическое изображение, которое хранится в базе данных.Фактическое изображение должно отображаться в div в том же виде, который должен отображаться при нажатии на изображение большого пальца. Это должно произойти с помощью jquery. Спасибо, что изучили это.
Ответ №1:
Для этого можно использовать HttpHandler
. Добавьте универсальный обработчик в свой проект и сделайте что-то вроде следующего в ProcessRequest
методе
context.Response.Clear();
var imageID = context.Request.QueryString["imageID"];
MemoryStream stream = new MemoryStream();
try
{
byte[] buffer = GetYourImageBuffer(imageID);
if(buffer != null)
{
stream = new MemoryStream(buffer);
Image image = Image.FromStream(stream);
context.Response.ContentType = "image/jpeg"; //Or what ever
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
}
finally
{
context.Response.Flush();
stream.Close();
}
Затем в вашем html вы сможете вызвать это с помощью…
<img src="ImageHandler.ashx?imageID=<%: Model.Image.ID %>" />
Ответ №2:
Если у вас есть изображения в байтовом формате в базе данных, то сначала вам нужно сохранить изображение в каталоге сервера и после сохранения файла изображения отобразить его с помощью jquery. Вы также можете использовать плагины, такие как lightbox, для отображения изображения в более привлекательном виде.
Таким образом, вы сможете отображать изображение в том же виде, в котором вы используете jquery и делаете AJAX-запрос для получения изображения.