javaWeb文件上传要用到下面两个jar包
commons-fileupload-1.4.jar
commons-io-2.6.jar
百度网盘
https://pan.baidu.com/s/1x5jKILnNurnlb0Ztib9dIw
提取码:yjqh
maven依赖
<!-- 文件上传 start by zhangyd-c -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>图片上传</title>
</head>
<body>
//注意:from中enctype要设置multipart/form-data
<form action="filServlet" method="post" enctype="multipart/form-data">
请选择文件: <input type="file" name="prcture">
<input type="submit" value="上传">
<br>
</form>
</body>
</html>
Servlet页面
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class fileServlet
*/
@WebServlet("/fileServlet")
public class fileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public fileServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置响应格式
request.setCharacterEncoding("utf-8");
//创建DiskFileItemFactory用来创建 ServletFileUpload的依赖
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
ServletFileUpload servletFileUpload =new ServletFileUpload(diskFileItemFactory);
try {
//获取页面传入的所有的文本框对象
List<FileItem> fileItems = servletFileUpload.parseRequest(request);
//遍历所有的文本框对象
for(FileItem fileItem:fileItems) {
//fileItem.isFormField()的判断文本框对象是否是普通文本框
if(!fileItem.isFormField()) {
//获取input中的name名称
String name =fileItem.getFieldName();
//获取传输文件的文件名名
String filname = fileItem.getName();
//获取文件大小
Long size = fileItem.getSize();
System.out.println(name);
System.out.println(filname);
System.out.println(size);
//创建二进制写入对象
InputStream inputStream= fileItem.getInputStream();
//编译文件的上传地址request.getServletContext().getRealPath()是获取Tomcat中项目运行
//文件的保存地址
String path =request.getServletContext().getRealPath("images/"+filname);
//创建二进制输出对象
OutputStream outputStream = new FileOutputStream(path);
//进行输出储存
int temp=0;
while((temp=inputStream.read())!=-1) {
outputStream.write(temp);
}
//关闭二进制流
outputStream.close();
inputStream.close();
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在文件夹已经上传成功
在console打印如下,这里的大小是字节