已知图片存放路径,获取图片的方法:
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();