【原】将流输出到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();

 

方法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();

 

 

posted @ 2010-04-13 12:20  aisoon99  阅读(247)  评论(0编辑  收藏  举报