java文件上傳
1. 所需jar包
commons-io-2.4 --- 我使用的是2.4版本
commons-fileupload-1.3.3 --- 1.3.3版本
上述jar包請到該鏈接下載:https://pan.baidu.com/s/153wiQJ-kmsF_c6usLFk19Q 提取碼:tg3p
2. 代碼實現
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.List;
/**
* @author ksdhy
* @date 2020/9/13 8:53
*/
public class Upload extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
if(!ServletFileUpload.isMultipartContent(req)) // 確認文件是不是為二進制流傳輸
{
return; // 非二進制就不理會請求
}
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List<FileItem> fileItemList = upload.parseRequest(req);
for(FileItem item : fileItemList){
String fileName = item.getFieldName();
if(item.isFormField()){ // 如果是普通表單組件
String value = item.getString("utf-8");
System.out.println(fileName + value);
}else{
System.out.println(fileName + item.getName()); // 文件名
item.write(new File("E:/",item.getName()));
}
}
resp.getWriter().append("上傳成功");
} catch (FileUploadException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}