【原】将流输出到Http请求中的方法
已知图片存放路径,获取图片的方法:
System.Drawing.Image imageOrigin = null;
string filePath = saveDisk + ViewState["origimageUrl"].ToString();//路径
imageOrigin = System.Drawing.Image.FromFile(filePath);
以字符流的形式下载图片
方法1:将该图片imageOrigin存放在一个临时文件夹中,以文件流的形式读出到bytes[]字节数组中,将字节数组写入请求中
imageOrigin.Save(tempPath + "\\" + fileName);
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(ViewState["imageName"].ToString(), System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
FileStream fs = new FileStream(filePath, FileMode.Open);
byte[] bytes = new byte[(int)fs.Length];
fs.Read(bytes, 0, bytes.Length);
fs.Close();
Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(ViewState["imageName"].ToString(), System.Text.Encoding.UTF8));
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
方法2:不将该图片imageOrigin存放到临时文件夹中,直接以流的形式输出到http请求中
Response.Clear();
Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(ViewState["imageName"].ToString(), System.Text.Encoding.UTF8));
imageOrigin.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Response.End();
Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开
Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(ViewState["imageName"].ToString(), System.Text.Encoding.UTF8));
imageOrigin.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Response.End();