1. 程式人生 > >(我是新手)web網頁下載,在創建輸入流時拋出異常

(我是新手)web網頁下載,在創建輸入流時拋出異常

第一個 () tex 文件絕對路徑 finally 暫時 pro stream exce

 1 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 2         //獲取文件名
 3         String fileName=req.getParameter("fileName");
 4         //獲取文件後綴名
 5         String str=fileName.substring(fileName.lastIndexOf("."));
 6         //設置響應頭,
 7         resp.setHeader("Content-Disposition","attachment; filename="+
 8
System.currentTimeMillis()+str); 9 //獲得絕對路徑 10 String path=this.getServletContext().getRealPath(fileName); 11 12 InputStream in=null; 13 ServletOutputStream serOut=null; 14 try{ 15 //創建文件 16 File file=new File(path);
17 in=new FileInputStream(file); 18 serOut=resp.getOutputStream(); 19 20 byte[] by=new byte[1024]; 21 int len; 22 while((len=in.read(by))!=-1){ 23 serOut.write(by, 0, by.length); 24 } 25 }catch(Exception e){ 26 27
}finally { 28 if(serOut!=null){ 29 serOut.close(); 30 } 31 if (in!=null) { 32 in.close(); 33 } 34 } 35 36 37 }

目的,下載網絡上的文件。期間共出現兩次問題,都不是代碼的緣故。

第一次,相關的下載文件的文件夾,位置沒放到對,放到WEB-INF了,所以獲得的文件絕對路徑找不到文件,導致輸入流出現異常,下載下來的文件大小為0kb

把文件夾放到外面,WebContent中,就解決了

把第一個問題件解決了,第一個文件下載下來,沒有問題,但是下載第二個文件的時候,又出現了之前的問題

在用斷點調試的過程中,發現獲得的文件名中有亂碼,不能獲取到File對象,經過對比,發現是文件名中有中文,修改,同事修改超鏈接中的參數,就ok,至於怎樣在不修改中文的情況下搞定,暫時還沒學到。

(我是新手)web網頁下載,在創建輸入流時拋出異常