Обработчик изображений .NET для удаления файла - PullRequest
1 голос
/ 30 сентября 2010

Я создал обработчик ashx для рендеринга миниатюр изображений из изображений в базе данных mysql.Если имя файла передается через строку запроса, задается имя файла расположения контента (когда пользователь нажимает «сохранить как ...», появляется имя файла).Изображения отображаются правильно, и имя файла появляется, когда пользователь выбирает «сохранить как ...», но тип файла указан как неизвестный, а загружаемый файл не имеет типа.конец имени файла в расположении содержимого из-за отсутствия чего-либо еще, чтобы попробовать, но это заставило каждое изображение загружаться как 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;");
        }

1 Ответ

2 голосов
/ 30 сентября 2010

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

Content-Disposition: attachment;filename=the_filename_here.ext
...