Hutool HttpRequest多图片上传

本文介绍了一种使用Java实现的批量文件上传方法。通过解析包含多个URL的字符串,下载远程图片并将其上传到服务器指定的URL。文章详细展示了如何利用Java的流操作完成文件的临时存储及最终的文件上传。
public static String upload(String imageUrls) throws Exception {

        String[] imageUrlArray = imageUrls.split(",");

        MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();

        File[] files = new File[imageUrlArray.length];
        List<MultipartFile> multipartFileList = new ArrayList<>();
        int index=0;
        for(String imageUrl : imageUrlArray) {
            //上传到cos
            files[index] = getFile(imageUrl);
            index ++;
        }

        String url = "你的服务端文件上传url";

        List<File> list = null;
        
         String result = HttpRequest.post(url).header("Content-Type", ContentType.MULTIPART.toString()).form("files", files).execute().body();
        return result;
}

public static File getFile(String url) throws Exception {
    //对本地文件命名
    String fileName = url.substring(url.lastIndexOf("."),url.length());
    File file = null;

    URL urlfile;
    InputStream inStream = null;
    OutputStream os = null;
    try {
        file = File.createTempFile("net_url", fileName);
        //下载
        urlfile = new URL(url);
        inStream = urlfile.openStream();
        os = new FileOutputStream(file);

        int bytesRead = 0;
        byte[] buffer = new byte[1024];
        while ((bytesRead = inStream.read(buffer, 0, 1024)) != -1) {
            os.write(buffer, 0, bytesRead);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            if (null != os) {
                os.close();
            }
            if (null != inStream) {
                inStream.close();
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    return file;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值