我创建了一个 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;");
}