Java实现多种格式文件上传
时间: 2023-10-10 21:07:45 浏览: 41
Java可以通过使用Apache的FileUpload组件来实现多种格式文件上传。以下是一个简单的示例:
1.在Maven中添加FileUpload依赖项:
```
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.4</version>
</dependency>
```
2.编写上传文件的Servlet:
```
@WebServlet("/upload")
@MultipartConfig
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String uploadPath = "C:/uploads"; // 上传文件保存的路径
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
try {
List<FileItem> formItems = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
if (formItems != null && formItems.size() > 0) {
for (FileItem item : formItems) {
if (!item.isFormField()) {
String fileName = new File(item.getName()).getName();
String filePath = uploadPath + File.separator + fileName;
File storeFile = new File(filePath);
item.write(storeFile);
request.setAttribute("message", "文件上传成功!");
}
}
}
} catch (Exception ex) {
request.setAttribute("message", "文件上传失败:" + ex.getMessage());
}
request.getRequestDispatcher("/upload.jsp").forward(request, response);
}
}
```
3.创建一个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>
<h2>文件上传</h2>
<form method="POST" action="upload" enctype="multipart/form-data">
<input type="file" name="file" />
<br/><br/>
<input type="submit" value="上传" />
</form>
<br/>
<p>${message}</p>
</body>
</html>
```
以上代码将上传的文件保存在C:/uploads目录下。你可以根据实际情况修改上传路径以及其他配置。