写一个文件上传的Java
时间: 2024-05-25 08:17:02 浏览: 10
代码示例:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLDecoder;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
@WebServlet("/fileUpload")
public class FileUploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 判断上传表单是否为 multipart/form-data 类型
if (ServletFileUpload.isMultipartContent(request)) {
// 创建一个文件上传处理器
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置缓存区大小,超出后将产生临时文件,单位为字节
factory.setSizeThreshold(1024 * 1024 * 10); // 10MB
// 设置临时文件存储目录
File tempDir = new File("C:/temp");
if (!tempDir.exists()) {
tempDir.mkdirs();
}
factory.setRepository(tempDir);
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传文件的最大值,单位为字节
upload.setFileSizeMax(1024 * 1024 * 100); // 100MB
// 设置上传表单的总最大值,单位为字节
upload.setSizeMax(1024 * 1024 * 500); // 500MB
// 处理上传表单数据
try {
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
// 获取文件名
String fileName = URLDecoder.decode(item.getName(), "UTF-8");
// 上传文件
InputStream in = item.getInputStream();
OutputStream out = new FileOutputStream("C:/upload/" + fileName);
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
in.close();
out.close();
}
}
response.getWriter().print("上传成功");
} catch (FileUploadException e) {
response.getWriter().print("上传失败:" + e.getMessage());
}
} else {
response.getWriter().print("上传表单必须是 multipart/form-data 类型");
}
}
}
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)