java 多文件上传代码
时间: 2023-08-08 17:05:20 浏览: 88
Java 多文件上传
4星 · 用户满意度95%
以下是一个简单的 Java 多文件上传代码示例:
```java
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class MultiFileUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置上传文件的保存路径
String savePath = "D:/upload/";
// 设置上传文件的大小限制
int maxSize = 50 * 1024 * 1024; // 最大50MB
// 创建文件上传工厂对象
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓冲区大小,当上传文件的大小超过缓冲区大小时,将会产生临时文件
factory.setSizeThreshold(1024 * 1024);
// 设置上传文件保存的目录
factory.setRepository(new File(savePath)));
// 创建文件上传对象
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的大小限制
upload.setFileSizeMax(maxSize);
try {
// 解析请求,获取上传文件的信息
List<FileItem> items = upload.parseRequest(request);
// 依次处理每个上传文件
for (FileItem item : items) {
if (!item.isFormField()) { // 如果是上传文件,则保存到磁盘上
String fileName = item.getName(); // 获取上传文件的文件名
String filePath = savePath + fileName; // 上传文件的保存路径
File file = new File(filePath);
item.write(file); // 保存文件到磁盘上
}
}
// 返回上传成功信息
response.getWriter().write("上传成功!");
} catch (Exception e) {
e.printStackTrace();
response.getWriter().write("上传失败:" + e.getMessage());
}
}
}
```
在以上代码中,我们使用了 Apache 的 Commons FileUpload 库来实现多文件上传功能。具体步骤如下:
1. 创建一个 DiskFileItemFactory 对象,用于设置上传文件的缓存大小和临时文件目录。
2. 创建一个 ServletFileUpload 对象,用于设置上传文件的大小限制。
3. 解析请求,获取上传文件的信息。
4. 依次处理每个上传文件,将其保存到磁盘上。
5. 返回上传成功信息或失败信息。
需要注意的是,以上代码中只是简单地实现了多文件上传功能,实际项目中可能会有更多的需求,例如限制上传文件的类型、重命名上传文件等。
阅读全文