java 上传文件_JAVA学习笔记——fileUpload文件上传
时间: 2023-11-09 10:05:50 浏览: 60
文件上传是Web开发中常见的功能之一,Java中也提供了多种方式来实现文件上传。其中,一种常用的方式是通过Apache的commons-fileupload组件来实现文件上传。
以下是实现文件上传的步骤:
1.在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
```
2.在前端页面中添加文件上传表单:
```html
<form method="post" enctype="multipart/form-data" action="upload">
<input type="file" name="file">
<input type="submit" value="Upload">
</form>
```
3.在后台Java代码中处理上传文件:
```java
// 创建一个DiskFileItemFactory对象,用于解析上传的文件
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓冲区大小,如果上传的文件大于缓冲区大小,则先将文件保存到临时文件中,再进行处理
factory.setSizeThreshold(1024 * 1024);
// 创建一个ServletFileUpload对象,用于解析上传的文件
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的大小限制,这里设置为10MB
upload.setFileSizeMax(10 * 1024 * 1024);
// 解析上传的文件,得到一个FileItem的List集合
List<FileItem> items = upload.parseRequest(request);
// 遍历FileItem的List集合,处理上传的文件
for (FileItem item : items) {
// 判断当前FileItem是否为上传的文件
if (!item.isFormField()) {
// 获取上传文件的文件名
String fileName = item.getName();
// 创建一个File对象,用于保存上传的文件
File file = new File("D:/uploads/" + fileName);
// 将上传的文件保存到指定的目录中
item.write(file);
}
}
```
以上代码中,首先创建了一个DiskFileItemFactory对象,用于解析上传的文件。然后设置了缓冲区大小和上传文件的大小限制。接着创建一个ServletFileUpload对象,用于解析上传的文件。最后遍历FileItem的List集合,判断当前FileItem是否为上传的文件,如果是,则获取文件名,创建一个File对象,将上传的文件保存到指定的目录中。
4.文件上传完成后,可以给用户一个提示信息,例如:
```java
response.getWriter().write("File uploaded successfully!");
```
以上就是使用Apache的commons-fileupload组件实现文件上传的步骤。需要注意的是,文件上传可能会带来安全隐患,因此在处理上传的文件时,需要进行严格的校验和过滤。