Servlet文件上傳
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
//保存路徑
String savePath = getServletContext().getRealPath("/upload");
File saveDir = new File(savePath);
// 如果目錄不存在,就創建目錄
if(!saveDir.exists()){
saveDir.mkdir();
}
// 創建文件上傳核心類
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
//設置編碼
sfu.setHeaderEncoding("UTF-8");
// 設置上傳的單個文件的最大字節數爲2M
sfu.setFileSizeMax(1024*1024*2);
//設置整個表單的最大字節數爲10M
sfu.setSizeMax(1024*1024*10);
try{
// 處理表單請求
List<FileItem> itemList = sfu.parseRequest(request);
for (FileItem fileItem : itemList) {
// 對應表單中的控件的name
String fieldName = fileItem.getFieldName();
System.out.println("控件名稱:" + fieldName);
// 如果是普通表單控件
if(fileItem.isFormField()){
String value = fileItem.getString();
//重新編碼,解決亂碼
value = new String(value.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("普通內容:" + fieldName + "=" + value);
// 上傳文件
}else{
// 獲得文件大小
Long size = fileItem.getSize();
// 獲得文件名
String fileName = fileItem.getName();
System.out.println("文件名:"+fileName+"\t大小:" + size + "byte");
//設置不允許上傳的文件格式
if(fileName.endsWith(".exe")){
request.setAttribute("msg", "不允許上傳的類型!");
}else{
//將文件保存到指定的路徑
File file = new File(savePath,fileName);
fileItem.write(file);
request.setAttribute("msg", "上傳成功!");
}
}
}
}catch(FileSizeLimitExceededException e){
request.setAttribute("msg", "文件太大");
}catch(FileUploadException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
//上傳完畢後 轉發到首頁
request.getRequestDispatcher("/index.jsp").forward(request, response);
response.setContentType("text/html; charset=UTF-8");
//保存路徑
String savePath = getServletContext().getRealPath("/upload");
File saveDir = new File(savePath);
// 如果目錄不存在,就創建目錄
if(!saveDir.exists()){
saveDir.mkdir();
}
// 創建文件上傳核心類
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload sfu = new ServletFileUpload(factory);
//設置編碼
sfu.setHeaderEncoding("UTF-8");
// 設置上傳的單個文件的最大字節數爲2M
sfu.setFileSizeMax(1024*1024*2);
//設置整個表單的最大字節數爲10M
sfu.setSizeMax(1024*1024*10);
try{
// 處理表單請求
List<FileItem> itemList = sfu.parseRequest(request);
for (FileItem fileItem : itemList) {
// 對應表單中的控件的name
String fieldName = fileItem.getFieldName();
System.out.println("控件名稱:" + fieldName);
// 如果是普通表單控件
if(fileItem.isFormField()){
String value = fileItem.getString();
//重新編碼,解決亂碼
value = new String(value.getBytes("ISO-8859-1"),"UTF-8");
System.out.println("普通內容:" + fieldName + "=" + value);
// 上傳文件
}else{
// 獲得文件大小
Long size = fileItem.getSize();
// 獲得文件名
String fileName = fileItem.getName();
System.out.println("文件名:"+fileName+"\t大小:" + size + "byte");
//設置不允許上傳的文件格式
if(fileName.endsWith(".exe")){
request.setAttribute("msg", "不允許上傳的類型!");
}else{
//將文件保存到指定的路徑
File file = new File(savePath,fileName);
fileItem.write(file);
request.setAttribute("msg", "上傳成功!");
}
}
}
}catch(FileSizeLimitExceededException e){
request.setAttribute("msg", "文件太大");
}catch(FileUploadException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
//上傳完畢後 轉發到首頁
request.getRequestDispatcher("/index.jsp").forward(request, response);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.