首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >下载文件url为MultipartFile

下载文件url为MultipartFile

作者头像
阿超
发布2023-06-23 14:17:25
发布2023-06-23 14:17:25
9340
举报
文章被收录于专栏:快乐阿超快乐阿超

良好的秩序是一切的基础。——伯克

代码如下:

代码语言:javascript
复制

import lombok.Cleanup;
import lombok.SneakyThrows;
import lombok.val;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.dromara.hutool.core.io.IoUtil;
import org.dromara.hutool.core.net.url.URLUtil;
import org.springframework.http.MediaType;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

/**
 * MultiFileUtils
 *
 * @author VampireAchao
 * @since 2023/6/1
 */
public class MultiFileUtils {


    /**
     * 通过url获取MultipartFile
     *
     * @param url      文件网络路径
     * @param fileName 文件新名称
     * @return MultipartFile
     */
    @SneakyThrows
    public static MultipartFile getMultipartFile(String url, String fileName) {
        @Cleanup val inputStream = URLUtil.url(url).openStream();
        FileItemFactory factory = new DiskFileItemFactory(16, null);
        FileItem fileItem = factory.createItem(fileName, MediaType.MULTIPART_FORM_DATA_VALUE, true, fileName);
        val bytes = IoUtil.readBytes(inputStream);
        @Cleanup val outputStream = fileItem.getOutputStream();
        IoUtil.write(outputStream, false, bytes);
        return new CommonsMultipartFile(fileItem);
    }

}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档