帮我用Java实现一个Web文件上传功能
时间: 2023-03-11 14:16:17 浏览: 83
好的。下面是使用 Java 实现 Web 文件上传功能的简要步骤:
1. 在 HTML 网页中创建一个文件输入控件,如:
```html
<form action="uploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
```
2. 在服务端的 Java 代码中,使用如下所示的代码来获取上传文件:
```java
import java.io.File;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class UploadServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 配置上传参数
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
// 解析请求的内容提取文件数据
List<FileItem> formItems = upload.parseRequest(request);
if (formItems != null && formItems.size() > 0) {
// 迭代表单数据
for (FileItem item : formItems) {
// 如果fileitem中封装的是普通输入项的数据
if (item.isFormField()) {
String fieldName = item.getFieldName();
String fieldValue = item.getString();
// ...
} else {
String fileName = new File(item.getName()).getName();
String filePath = "文件存放路径";
File storeFile = new File(filePath + File.separator + fileName);
// 在控制台输出文件的上传路径
System.out.println(filePath + File.separator + fileName);
// 保存文件到硬盘
item.write(storeFile);