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 閱讀(3730) 評論(1)  編輯  收藏 所屬分類: Scripts

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 通海县| 航空| 睢宁县| 长垣县| 大洼县| 长白| 新邵县| 临夏县| 昌黎县| 黑山县| 凌海市| 古田县| 红安县| 古丈县| 桂平市| 双城市| 巴中市| 博白县| 茂名市| 商丘市| 鄄城县| 莱州市| 西城区| 和静县| 新蔡县| 天津市| 荥阳市| 古交市| 奉节县| 台湾省| 吉林省| 盐池县| 额尔古纳市| 崇礼县| 云梦县| 出国| 衡水市| 郯城县| 寿宁县| 渑池县| 林州市|