Обработчик изображений .NET удаляет тип файла при загрузке

Я создал обработчик ashx для рендеринга эскизов изображений из изображений в базе данных mysql. Если имя файла передается через строку запроса, устанавливается имя файла размещения содержимого (когда пользователь щелкает «сохранить как ...» отображается имя файла). Изображения отображаются правильно, и имя файла отображается, когда пользователь выбирает «сохранить как ...», но тип файла указан как неизвестный, а загружаемый файл не имеет типа.

Я попытался добавить «.jpg» в конец имени файла в расположении содержимого из-за отсутствия каких-либо других попыток, но из-за этого каждое изображение загружалось как untitled.bmp.

 byte[] imageData = null;
 Image outputImage = null;

 if (!String.IsNullOrEmpty(HttpContext.Current.Request.QueryString["pictureid"]))
        pictureId = SafeConvert.ToInt(HttpContext.Current.Request.QueryString["pictureid"].Trim());
        if (pictureId > -1)
        {
            if (!String.IsNullOrEmpty(fileName))
                HttpContext.Current.Response.AppendHeader("Content-Disposition", "filename=" + fileName + ";");

            imageData = new OHTManager().GetOrnamentImage(pictureId);

            context.Response.ContentType = "text/jpeg";
            context.Response.BinaryWrite(imageData);
        }
        else
        {
            throw new Exception("No image could be produced;");
        }

person caltrop    schedule 30.09.2010    source источник


Ответы (1)


Я думаю, вам нужно изображение / jpeg вместо текста / jpeg для заголовка context.Response.ContentType. Вам также необходимо установить допустимое размещение контента; вы, вероятно, хотите привязанности. В настоящее время у вас есть только параметр имени файла, а заголовок НЕ действителен без указания типа размещения содержимого. В конечном итоге ваш заголовок должен выглядеть так:

Content-Disposition: attachment;filename=the_filename_here.ext
person Mark    schedule 30.09.2010
comment
Тип контента был проблемой, большое спасибо! Я пошел дальше и обновил свой заголовок Content-Disposition, как вы предложили. - person caltrop; 30.09.2010