1. 程式人生 > >SmartUpload 檔案詳細過程 上傳 下…

SmartUpload 檔案詳細過程 上傳 下…

import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.jspsmart.upload.*; import java.text.*; import java.util.*; public class UploadServlet extends HttpServlet { public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 新建一個SmartUpload物件,此項是必須的 SmartUpload myupload = new SmartUpload(); // 初始化,此項是必須的 ServletConfig config = getServletConfig(); myupload.initialize(config,request,response); response.setContentType("text/html"); response.setCharacterEncoding("gb2312"); PrintWriter out = response.getWriter(); out.println("<h2>處理上傳的檔案</h2>"); out.println("<hr>"); try{ // 限制每個上傳檔案的最大長度 myupload.setMaxFileSize(1024*1024); // 限制總上傳資料的長度 myupload.setTotalMaxFileSize(5*1024*1024); // 設定允許上傳的檔案(通過副檔名限制) myupload.setAllowedFilesList("doc,txt,jpg,gif"); // 設定禁止上傳的檔案(通過副檔名限制) myupload.setDeniedFilesList("exe,bat,jsp,htm,html,,"); // 上傳檔案,此項是必須的 myupload.upload(); // 統計上傳檔案的總數 int count = myupload.getFiles().getCount(); // 取得Request物件 Request myRequest = myupload.getRequest(); String rndFilename,fileExtName,fileName,filePathName,memo; Date dt = null;  SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS"); // 逐一提取上傳檔案資訊,同時可儲存檔案 for (int i=0;i<count;i++) { // 取得一個上傳檔案 File file = myupload.getFiles().getFile(i); // 若檔案不存在則繼續 if (file.isMissing()) continue; // 取得檔名 fileName = file.getFileName(); // 取得檔案全名 filePathName = file.getFilePathName(); // 取得副檔名 fileExtName = file.getFileExt(); // 取得隨機檔名 dt = new Date(System.currentTimeMillis());  Thread.sleep(100); rndFilename= fmt.format(dt)+"."+fileExtName; memo = myRequest.getParameter("memo"+i); // 顯示當前檔案資訊 out.println("第"+(i+1)+"個檔案的檔案資訊:<br>"); out.println(" 檔名為:"+fileName+"<br>"); out.println(" 副檔名為:"+fileExtName+"<br>"); out.println(" 檔案全名為:"+filePathName+"<br>"); out.println(" 檔案大小為:"+file.getSize()+"位元組<br>"); out.println(" 檔案備註為:"+memo+"<br>"); out.println(" 檔案隨機檔名為:"+rndFilename+"<br><br>"); // 將檔案另存,以WEB應用的根目錄作為上傳檔案的根目錄 file.saveAs("/upload/" + rndFilename,myupload.SAVE_VIRTUAL); } out.println(count+"個檔案上傳成功!<br>"); }catch(Exception ex){ out.println("上傳檔案超過了限制條件,上傳失敗!<br>"); out.println("錯誤原因:<br>"+ex.toString()); } out.flush(); out.close(); } } 第三步 web.xml配置