AntSoul

          它總是在行走,行走,永遠的行走…… 行走是它生存的恒久姿態和最佳造型。 它似乎有一雙不知疲倦的腳。 ———我說的是螞蟻。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            42 隨筆 :: 0 文章 :: 1 評論 :: 0 Trackbacks
                  最近遇到個這樣的問題(在不使用組件【如jspsmartupload】的情況下)在web頁面上如果一個有個連接,連接的的是文本文件,當左鍵點擊的話會查看這個文件,右鍵點擊可以下載.但是如果是windows不識別的文件,左鍵點擊直接就下載了比如zip,那如何點擊左鍵直接下載.txt的文本文件呢?
               要直接下載一個文件,我們需要做兩件事,第一件事是:設定響應的內容類為“application/octet-stream”,大小寫無關。第二件事是:設置HTTP的響應頭名字為:Content-Disposition,設定值為:attachment; filename = theFileName。這里的theFileName就是出現在文件下載對話框里的默認文件名,通常和所下載的文件名字相同,但也可以不同。
           
          代碼
          1. <meta http-equiv="Content-Type" content="text/html; charset=gbk">  
          2. <HTML>  
          3. <HEAD>  
          4.   
          5. </HEAD>  
          6.   
          7. <BODY>  
          8. <a href = "download1.jsp?filepath=d:\\&filename=1a.txt" >downloadtest1</a>  
          9.   
          10. </BODY>  
          11. </HTML>  

          這是頁面上的連接,我傳了個路徑和文件名
          代碼
          1. <%    
          2.     String filename = request.getParameter("filename");//"1a.txt";    
          3.     String filepath = request.getParameter("filepath");//"d:\\";   
          4.      int i = 0;   
          5.     response.setContentType("application/octet-stream");  
          6.     response.setHeader("Content-Disposition","attachment;filename = "+filename);    
          7.     java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath+filename);   
          8.     while((i= fileInputStream.read()) != -1){   
          9.         out.write(i);   
          10.     }   
          11. %>  
          1. <%    
          2.     String filename = request.getParameter("filename");//"1a.txt";    
          3.     String filepath = request.getParameter("filepath");//"d:\\";   
          4.      int i = 0;   
          5.     response.setContentType("application/octet-stream");  
          6.     response.setHeader("Content-Disposition","attachment;filename = "+filename);    
          7.     java.io.FileInputStream fileInputStream = new java.io.FileInputStream(filepath+filename);   
          8.     while((i= fileInputStream.read()) != -1){   
          9.         out.write(i);   
          10.     }   
          11. %>  

          這是被調用的download1.jsp,這個jsp就是執行直接下載文件。
          參考一下JS來實現:

          function svcode(obj) {
          var winname = window.open('', '_blank', 'height=1,width=1,top=200,left=300');
          winname.document.open('text/html', 'replace');
          winname.document.writeln(obj.value);
          winname.document.execCommand('saveas','','code.txt');
          winname.close();
          }


          posted on 2007-04-10 09:14 yok 閱讀(3717) 評論(1)  編輯  收藏 所屬分類: Scripts

          評論

          # re: 如何點擊連接直接下載(.txt文本)文件 2008-12-01 15:16 juan
          不會下載txt文本,怎樣下啊  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 科尔| 独山县| 晋城| 东丰县| 治多县| 渝北区| 张家口市| 射洪县| 略阳县| 赞皇县| 德惠市| 信宜市| 高州市| 东兰县| 湄潭县| 新野县| 崇左市| 诸暨市| 阳城县| 景洪市| 余江县| 融水| 宾阳县| 平遥县| 若尔盖县| 红原县| 通化县| 新宾| 南城县| 日土县| 乌拉特中旗| 漳平市| 从江县| 鲜城| 滨海县| 泰宁县| 商水县| 曲靖市| 吴旗县| 黎平县| 天峨县|