Я немного осмотрелся, и похоже, что решение проблемы заключается в изменении заголовка содержимого файла, чтобы он не рассматривался как обычное изображение.
Это все хорошо, и я попытался написать обработчик изображения для этого. Проблема в том, что изображения, которые я использую, бывают разных форматов. Я буду использовать jpg / png / tiff / eps.
Мой план состоял в том, чтобы использовать класс Bitmap для открытия файла, а затем сохранить его в выходном потоке, используя:
Bitmap bmap = new Bitmap(context.Server.MapPath(imagePath));
bmap.Save(context.Response.OutputStream, ImageFormat.<Format goes here>);
Проблема в том, что .Net, похоже, не поддерживает расширение eps, так как мне иметь дело с этими файлами. Правильный ли я подход?
Спасибо
EDIT:
Я действительно использовал комбинацию обоих ваших предложений, чтобы придумать:
// determine what type of file to send back
switch (Path.GetExtension(imagePath))
{
case ".png":
context.Response.ContentType = "image/png";
context.Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".png");
break;
case ".jpg":
context.Response.ContentType = "image/jpeg";
context.Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".jpg");
break;
case ".tiff":
context.Response.ContentType = "image/tiff";
context.Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".tif");
break;
case ".eps":
context.Response.ContentType = "image/postscript";
context.Response.AddHeader("content-disposition", "attachment; filename=" + fileName + ".eps");
break;
}
context.Response.WriteFile(context.Server.MapPath(imagePath));
context.Response.Flush();
Кажется, что добился цели - спасибо обоим за вашу помощь!