asp.net中通過對(duì)話框方式下載文件
1 通過探出對(duì)話框提示文件下載或打開
2 通過自定義header讓特定的應(yīng)用程序打開文件
使用的方法:response.transmitfile()
例程:
response.contenttype = “image/jpeg”;
response.appendheader(“content-disposition”,”attachment; filename=sailbig.jpg”);
response.transmitfile( server.mappath(“~/images/sailbig.jpg”) );  
流傳送所使用的方法:
response.binarywrite()和response.outputstream()
例程:
bitmap bmp = wwwebutils.cornerimage(backcolor, color, c, radius, height, width);
response.contenttype = “image/jpeg”;
response.appendheader(“content-disposition”,”attenment; filename=leftcorner.jpg”);
bmp.save(response.outputstream, imageformat.jpeg); 
關(guān)于content type(mime type)的參考url:
http://www.w3.org/tr/html4/types.html (概述)
http://www.iana.org/assignments/media-types/ (詳細(xì)列表)
常見問題解決方案:
1、當(dāng)從資源文件或者數(shù)據(jù)庫blob字段載入圖像出現(xiàn)錯(cuò)誤
錯(cuò)誤內(nèi)容:a generic error occurred in gdi+
代碼:
bitmap bmp = this.getglobalresourceobject(“resource”,”_bitmap”) as bitmap; 
response.contenttype=”image/jpeg”;
bmp.save(response.outputstream, imageformat.jpeg);  
response.end();
解決方法,再創(chuàng)建一個(gè)實(shí)例接收從資源文件或者數(shù)據(jù)庫blob字段讀入的圖像內(nèi)容。
解決方案代碼:
bitmap bmp = this.getglobalresourceobject(“resource”, ”_bitmap”) as bitmap;
bitmap temp = new bitmap(bmp);  
response.contenttype = “image/jpeg”;
temp.save(response.outputstream, imageformat.jpeg); 
bmp.dispose();
temp.dispose();  
response.end();
 
2、無法直接把png圖像存入到輸出流 
原因:png是特殊的圖片格式
解決方案代碼:
bitmap bmp = this.getglobalresourceobject( “resource”, “_bitmap”) as bitmap;
bitmap temp = new bitmap(bmp);  
memorystream ms = new memorystream(); 
response.contenttype=”image/png”;
temp.save(ms, system.drawing.imaging, imageformat.png);
ms.writeto(response.outputstream); 
bmp.dispose();
temp.dispose(); 
response.end();
3、解決緩存問題
response.contenttype=”image/png”;
response.buffer = false;
response.clear();  
memorystream stream1 = new memorystream(); 
// drawpie method return an image
this.drawpie(table1).save(stream1,imageformat.png);
response.binarywrite(stream1.toarray());  
base.onpreinit(e); 
新聞熱點(diǎn)
疑難解答
圖片精選