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();
}
}
}