将网络url图片链接转换为File类型对象

将网络url图片链接转换为File类型对象

    public static File convertFileByUrl(String url) {
        File file = null;

        URL urlfile;
        InputStream inputStream = null;
        OutputStream outputStream= null;
        try {
            file = File.createTempFile("wx_image", ".png");
            //下载
            urlfile = new URL(url);
            inputStream = urlfile.openStream();
            outputStream= new FileOutputStream(file);

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

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return file;
    }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用`URL`类来下载图片,并将其转换为`byte[]`数组,然后将该数组转换为`MultipartFile`对象。以下是一个示例代码: ```java import org.springframework.web.multipart.MultipartFile; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL; public class ImageConverter { public static MultipartFile convertToMultipartFile(String imageUrl) throws IOException { URL url = new URL(imageUrl); try (InputStream inputStream = url.openStream(); ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { byte[] buffer = new byte[4096]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { outputStream.write(buffer, 0, bytesRead); } byte[] imageBytes = outputStream.toByteArray(); return new InMemoryMultipartFile(imageBytes, url.getFile()); } } } class InMemoryMultipartFile implements MultipartFile { private final byte[] content; private final String name; public InMemoryMultipartFile(byte[] content, String name) { this.content = content; this.name = name; } @Override public String getName() { return name; } @Override public String getOriginalFilename() { return name; } @Override public String getContentType() { // 设置图片的 Content-Type return "image/jpeg"; } @Override public boolean isEmpty() { return false; } @Override public long getSize() { return content.length; } @Override public byte[] getBytes() throws IOException { return content; } @Override public InputStream getInputStream() throws IOException { return null; } @Override public void transferTo(java.io.File file) throws IOException, IllegalStateException { // 可以选择将文件保存到本地 } } ``` 你可以通过调用`convertToMultipartFile`方法并传入图片链接来获得对应的`MultipartFile`对象。请确保在使用该代码时导入了所需的依赖,如`org.springframework.web.multipart.MultipartFile`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值