【Java后端接收多个文件】java后端接收多个文件,因为是多个文件,所以在接收的时候可以使用 1、List<MultipartFile> 2、MultipartFile[]

本文介绍了Java后端如何接收多个文件,可以使用List<MultipartFile>或MultipartFile[]来接收文件列表,接收到文件后进行遍历并存储。在存储过程中,还会涉及到文件的重命名操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java后端接收多个文件

java后端接收多个文件,因为是多个文件,所以在接收的时候可以使用
1、List
2、MultipartFile[]
这两种其实都能接收到多个文件列表,接收到之后再遍历,获取文件,对文件进行存储即可。

保存文件

/**
     * 接收传递的文件数组
     * @param multipartFiles multipartFiles
     * @return result
     */
    public List<String> receiveFileToDir(List<MultipartFile> multipartFiles) {
        // 输出的文件流保存到本地文件
        // uploadDir 是设置好的文件保存地址,可自行设置
        String path = uploadDir;
        // 判断文件保存目录是否存在,不存在则创建相关目录
        File tempFile = new File(path);
        if (!tempFile.exists()) {
            tempFile.mkdirs();
        }
        List<String> fileNameList = new ArrayList<>();
        for (MultipartFile file : multipartFiles){
            OutputStream os = null;
            InputStream inputStream = null;
            String originalFilename = file.getOriginalFilename();
            String[] split = originalFilename.split("\\.");

            String fileName = codeUtilBuil() + "." + split[1];
            try {
                inputStream = file.getInputStream();
            } catch (IOException e) {
                e.printStackTrace();
            }
		// File.separato 系统默认分隔符,相当于 / 
            try {
                os = new FileOutputStream(tempFile.getPath()+ "/" + File.separator + fileName);
                // 开始读取
                byte[] bs = new byte[1024];
                // 读取数据
                int length;
                while ((length = inputStream.read(bs)) != -1) {
                    os.write(bs, 0, length);
                }
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                // 关闭所有链接
                try {
                    os.close();
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            fileNameList.add(path + "/" +fileName);
        }
        return fileNameList;
    }

重命名文件名:

/**
     * 上传文件名序号
     * @return
     */
    public String codeUtilBuil(){
        StringBuffer sb = new StringBuffer();
        Random random = new Random();
        for (int i = 0; i < 12; i++) {
            int y = random.nextInt(62);
            if (y <= 9) {
                sb.append(y);
            } else {
                if (y <= 35) {
                    y += 55;
                } else {
                    y += 61;
                }
                sb.append((char) y);
            }
        }
        return sb.toString();
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值