SmartUpload 檔案詳細過程 上傳 下…
阿新 • • 發佈:2019-02-17
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配置