上传到服务器的文件再次上传

场景:

有时候提供给前端的服务并不是文件保存的服务,而需要服务再向别的服务提交文件

上传图片

请添加图片描述

接收图片

import org.springframework.web.multipart.MultipartFile;

    @PostMapping("/uploadFile")
    public ApiResponse<SFile> uploadFile(@RequestParam("file") MultipartFile file,
                                                                                                    @RequestParam("id") String id) {
        //上传图片
        SFile sFile = sFileUtil.uploadFile(file);
        return ApiResponse.success();
    }

使用RestTemplate上传图片

import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
u
    @Value("${url}")
    private String url;

    @Autowired
    private RestTemplate restTemplate;

    /**
     * 上传图片
     *
     * @param multipartFile
     * @return
     */
    public SFile uploadFile(MultipartFile multipartFile) {
        try {
            String url = "/file/s-file";
            String l = Joiner.on("").join("http://", url, url);
            log.info("uploadFileUrl:" + l);
            //设置请求头
            HttpHeaders headers = new HttpHeaders();
            MediaType type = MediaType.parseMediaType("multipart/form-data");
            headers.setContentType(type);

            //设置请求体,注意是LinkedMultiValueMap
            MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
            form.add("file", multipartFile.getResource());

            //用HttpEntity封装整个请求报文
            HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
            String s = restTemplate.postForObject( l, files, String.class);
            JSONObject jsonObject = JSONUtil.parseObj(s);
            return jsonObject.get("data", SFile.class);
        } catch (Exception e) {
            log.error("上传图片失败:" + e);
        }
        return null;
    }

使用hutool上传图片

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
    /**
     * 上传图片
     *
     * @param multipartFile
     * @return
     */
    public SFile uploadFile(MultipartFile multipartFile) {
        try {
            String url = "http://127.0.0.1/file/s-file";
            HttpResponse response = HttpRequest.post(l)
                    .form("file", multipartFile.getBytes(), multipartFile.getOriginalFilename())
                    .execute();

            JSONObject jsonObject = JSONUtil.parseObj(response.body());
            return jsonObject.get("data", SFile.class);
                    } catch (Exception e) {
            log.error("上传图片失败:" + e);
        }
        return null;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值