java 实现多个文件同时上传

要实现Java中的多文件同时上传,可以使用Java Servlet技术和Apache Commons FileUpload库。下面是一个简单的示例:
1、在HTML表单中使用input标签中的multiple属性允许用户选择多个文件

1
2
3
4
<form action="upload" method="post" id="addMore" enctype="multipart/form-data">
  <input type="file" name="file" id="file" onchange="uploadFilesLoad()" multiple>
  <input type="submit" value="Upload">
</form>

2、js处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// 选中上传文件处理
function uploadFilesLoad() {
    var files = document.getElementById("file").files;
    for(var i = 0; i < files.length; i++) {
        // 文件处理
        // ...
    }
}
 
// 上传文件
function upload() {
    // 上传请求url
    var uploadUrl = "/.../uploadFile";
    $("#addMore").ajaxSubmit({
            type: "post",
            url: uploadUrl,
            dataType: "json",
            //headers: {Auth:TOKEN},
            beforeSubmit: function (formData) {
                // 上传前数据处理 formData为form所有数据
                // ...
            },
            success: function (resp) {
                // 上传成功处理
                // ...
            },
            error: function (code, error) {
                // 上传失败处理
                // ...
            }
        });
}

3、后台处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import org.springframework.web.multipart.MultipartHttpServletRequest;
 
@PostMapping(value = "/uploadFile")
public void uploadFile(HttpServletRequest request) {
    MultipartHttpServletRequest mRequest = (MultipartHttpServletRequest) request;
    List<MultipartFile> fileList = mRequest.getFiles("file");
    for (MultipartFile upfile : fileList) {
            // 文件大小
            String fileSize = new BigDecimal(upfile.getSize()).divide(new BigDecimal(1024), 0, BigDecimal.ROUND_HALF_UP).toPlainString();
            String originalFilename = upfile.getOriginalFilename();
            // 解决IE兼容问题
            originalFilename = originalFilename.substring(originalFilename.lastIndexOf("\\") + 1);
            // 文件名
            String fileName = originalFilename.substring(0, originalFilename.lastIndexOf("."));
            // 文件类型
            String fileType = originalFilename.substring(originalFilename.lastIndexOf("."));
            // 文件上传路径
            String path = "";
            String filePath = path + File.separator + originalFilename;
            File pathFile = new File(filePath);
            // 文件夹是否存在
            if (pathFile.exists()) {
                // 若不存在,创建
                if (!pathFile.mkdirs()) {
                    return false;
                }
            }
            // 上传文件
            /*FileOutputStream outputStream = new FileOutputStream(pathFile);
            fos.write(mFile.getBytes());
            fos.close();*/
        }
}

  

posted @   ヤBig、Bossづ  阅读(1919)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示