Java文件上传实现
文件上传的 Java,属于那种你一开始觉得麻烦,其实摸透之后发现也就那么回事的功能。
HTML 表单加个enctype="multipart/form-data"
,配合 Servlet 或者 Apache 的Commons FileUpload,基本就能跑起来。你要是用的是Servlet 3.0+,那就更轻松了,@MultipartConfig
一贴,解析文件省心不少。
Commons FileUpload还蛮好用,配合DiskFileItemFactory
,可以控制上传文件的临时缓存路径和大小,性能也还不错。下面这段是解析上传求的典型写法:
ServletFileUpload upload = new ServletFileUpload(fileItemFactory);
List items = upload.parseRequest(request);
接下来就遍历items
,判断是表单字段还是文件,文件就直接写到服务器:
for (FileItem item : items) {
if (item.isFormField()) {
// 表单字段
} else {
String fileName = item.getName();
String filePath = "your/desired/path/" + fileName;
item.write(new File(filePath));
}
}
要注意的一点是安全性。文件上传容易出事,比如病毒、木马啥的。你最好检查一下文件扩展名、MIME 类型,再做个大小限制。
如果你对上传组件不熟,推荐你看看 commons-fileupload-1.2.1,还有 基于 JSP 和 Servlet 的实现,都挺实用的。
哦对了,项目多了之后,文件存储位置、命名规则、元数据管理这些你也得想清楚。不然上传功能写完,维护起来会有点痛苦。
24.94MB
文件大小:
评论区