Java中如何上传文件
时间: 2023-09-20 11:12:01 浏览: 58
在Java中,可以使用Apache的FileUpload库来实现文件上传。以下是一个简单的示例代码:
```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 FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 检查是否为文件上传请求
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (isMultipart) {
// 创建文件上传对象
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
// 解析上传请求
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items) {
// 如果是文件域
if (!item.isFormField()) {
// 获取上传文件名
String fileName = item.getName();
// 获取上传文件的保存路径
String filePath = getServletContext().getRealPath("/") + "uploads/" + fileName;
// 创建上传文件对象
File uploadedFile = new File(filePath);
// 保存上传文件到磁盘
item.write(uploadedFile);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
```
在这个示例中,我们首先检查请求是否为文件上传请求。如果是,我们创建一个DiskFileItemFactory和一个ServletFileUpload对象,然后解析上传请求,并迭代处理每个上传的文件域。对于每个文件域,我们获取上传文件名和保存路径,创建一个File对象并将上传文件保存到磁盘上。