使用jspSmartUpload元件進行檔案上傳、下載
阿新 • • 發佈:2019-01-24
jspSmartUpload元件是一個可以免費使用的檔案上傳與下載元件。使用者可以把他安裝在web伺服器上,再進行使用。
jspSmartUpload元件使用非常簡單。在jsp檔案中僅需要寫幾行程式碼就可以實現檔案的上傳、下載。並能夠全程控制上傳。利用jspSmartUpload|元件提供的物件及其操作方法,可以獲得全部上傳、下載的資訊,如檔名,大小,型別、副檔名。。。。以方便檔案的存取;能對上傳的檔案在大小、型別等方面做出限制。這樣就可以過濾掉不符合要求的檔案;下載靈活。只須寫很少的程式碼就能把web伺服器變成檔案伺服器,不管檔案在不在web伺服器的目錄下,都可以利用該元件進行下載。
在使用jspSmartUpload時,必須將該元件放在專案中相應的目錄裡,如:WebRoot/WEB-INF/lib
一、檔案上傳
下面是一個jsp頁面,表單中有4個檔案輸入文字框,可以同時上傳4個檔案:
[html] view plain copy print?
當然可以設定同時上傳更多的檔案......
servlet處理程式:
[java] view plain copy print ?
該程式直接使用SmartUploa物件來實現檔案上傳。在申請物件後,必須要對其進行初始化:smartUpload.initialize(this.getServletConfig(),request,response);
二、檔案下載
使用jspSmartUpload元件進行檔案下載,可以非常簡單:
jsp頁面:
[html] view plain copy print?
處理程式:
[java] view plain copy print?
jspSmartUpload元件使用非常簡單。在jsp檔案中僅需要寫幾行程式碼就可以實現檔案的上傳、下載。並能夠全程控制上傳。利用jspSmartUpload|元件提供的物件及其操作方法,可以獲得全部上傳、下載的資訊,如檔名,大小,型別、副檔名。。。。以方便檔案的存取;能對上傳的檔案在大小、型別等方面做出限制。這樣就可以過濾掉不符合要求的檔案;下載靈活。只須寫很少的程式碼就能把web伺服器變成檔案伺服器,不管檔案在不在web伺服器的目錄下,都可以利用該元件進行下載。
在使用jspSmartUpload時,必須將該元件放在專案中相應的目錄裡,如:WebRoot/WEB-INF/lib
一、檔案上傳
下面是一個jsp頁面,表單中有4個檔案輸入文字框,可以同時上傳4個檔案:
[html] view plain copy print?
- <formaction="file?file=upLoadByjs"method="post"ENCTYPE="multipart/form-data">
- <inputtype="file"name=file1" size="30"><Br>
-
<
- <inputtype="file"name=file3" size="30"><Br>
- <inputtype="file"name=file4" size="30"><Br>
- <inputtype="submit"value="上傳">
- </form>
當然可以設定同時上傳更多的檔案......
servlet處理程式:
[java] view plain copy print
- String path ="D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad";
- //新建一個jsmartUpLoad物件
- SmartUpload smartUpload = new SmartUpload();
- //上傳初始化
- smartUpload.initialize(this.getServletConfig(),request,response);
- try {
- //設定上傳限制
- //限制每個上傳檔案的最大長度;將最大設定為1024*1024*20
- smartUpload.setMaxFileSize(1024*1024*10);
- //限制總上傳資料的長度
- smartUpload.setTotalMaxFileSize(1024*1024*20);
- //限制允許上傳的檔案型別、允許doc、txt、bat檔案
- smartUpload.setAllowedFilesList("doc,txt,bat");
- //限制禁止上傳的檔案型別,禁止exe、jsp、和沒有副檔名的檔案
- smartUpload.setDeniedFilesList("exe,jsp,,");
- //上傳檔案
- smartUpload.upload();
- //將檔案儲存到指定的目錄下
- smartUpload.save(path);
- } catch (SQLException e) {
- e.printStackTrace();
- } catch (SmartUploadException e) {
- e.printStackTrace();
- }
- //逐一提取檔案資訊,同時輸出上傳檔案的資訊
- for (int i = 0; i < smartUpload.getFiles().getCount(); i++) {
- com.jspsmart.upload.File myFile =smartUpload.getFiles().getFile(i);
- //若檔案表單中的檔案選項沒有選擇檔案則繼續
- if(myFile.isMissing())
- continue;
- //顯示當前檔案的資訊
- response.setContentType("text/html;charset=utf-8");
- PrintWriter out = response.getWriter();
- out.println("<table border='1'>");
- out.println("<tr><td>表單選項</td><td>"+myFile.getFieldName()+"</td></tr>");
- out.println("<tr><td>檔案長度:</td><td>"+myFile.getSize()+"</td></tr>");
- out.println("<tr><td>檔名</td><td>"+myFile.getFileName()+"</td></tr>");
- out.println("<tr><td>副檔名</td><td>"+myFile.getFileExt()+"</td></tr>");
- out.println("<tr><td>檔案全名</td><td>"+myFile.getFilePathName()+"</td></tr>");
- out.println("</table><br>");
- }
該程式直接使用SmartUploa物件來實現檔案上傳。在申請物件後,必須要對其進行初始化:smartUpload.initialize(this.getServletConfig(),request,response);
二、檔案下載
使用jspSmartUpload元件進行檔案下載,可以非常簡單:
jsp頁面:
[html] view plain copy print?
- <ahref="${pageContext.request.contextPath }/file1?file=downByJsmart&name=user.txt">下載user</a>
處理程式:
[java] view plain copy print?
- //獲取下載檔名
- String fileName = request.getParameter("name");
- //新建一個smartUpload物件
- SmartUpload smartUpload = new SmartUpload();
- //初始化
- smartUpload.initialize(this.getServletConfig(), request, response);
- //設定contentDisposition為null以禁止瀏覽器自動開啟檔案
- //保證單擊連結後是下載檔案。
- smartUpload.setContentDisposition(null);
- //下載檔案
- try {
- smartUpload.downloadFile("D:/work space/JSP workspace/jsp_servlet_upAndLoad/file/upLoad/"+fileName);
- } catch (SmartUploadException e) {
- e.printStackTrace();
- }