上传图片返回的路径问题

上传图片返回的路径问题

老师,这个路径返回有问题,我要怎么排查

https://img1.sycdn.imooc.com//climg/615bb8d509e0595419201080.jpg

https://img1.sycdn.imooc.com//climg/615bb8f609337b5819201080.jpg

https://img1.sycdn.imooc.com//climg/615bb90e09dfe9e219201080.jpg

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,1、同学可以调用getRequestURL()方法返回全路径,如下所示:

https://img1.sycdn.imooc.com//climg/615d70420902577412860360.jpg

2、同学返回的链接缺少http://,则建议同学查看getHost()方法。如下所示:

https://img1.sycdn.imooc.com//climg/615d6f4109961e6709760266.jpg

祝学习愉快!

  • 被抱的树 提问者 #1

    老师我的代码看起来没有问题啊😥

    @ApiOperation("后台上传商品图片")
    @PostMapping("admin/upload/file")
    public ApiRestResponse upload(HttpServletRequest httpServletRequest, @RequestParam("file") MultipartFile file) {
    String fileName = file.getOriginalFilename();
    String suffixName = fileName.substring(fileName.lastIndexOf("."));
    UUID uuid = UUID.randomUUID();//生成文件名UUID
    String newFileName = uuid.toString() + suffixName;
    File fileDirectory = new File(ProductConstant.FILE_UPLOAD_DIR);//创建文件夹
    File destFile = new File(ProductConstant.FILE_UPLOAD_DIR + newFileName);
    if (!fileDirectory.exists()){
    if (!fileDirectory.mkdir()) {
    throw new ImoocMallException(ImoocMallExceptionEnum.MKDIR_FAILED);
    }
    }
    try {
    file.transferTo(destFile);
    } catch (IOException e) {
    e.printStackTrace();
    }
    try {
    return ApiRestResponse.success(getHost(new URI(httpServletRequest.getRequestURI() + "")) + "/category-product/images/" + newFileName);
    } catch (URISyntaxException e) {
    return ApiRestResponse.error(ImoocMallExceptionEnum.UPLOAD_FAILED);
    }
    }

    private URI getHost(URI uri) {
    URI effectiveURI;
    try {
    effectiveURI = new URI(uri.getScheme(), uri.getUserInfo(), ip, port, null, null, null);
    } catch (URISyntaxException e) {
    effectiveURI = null;
    e.printStackTrace();
    }
    return effectiveURI;
    }


    2021-10-06 17:54:31
  • 好帮手慕小尤 回复 提问者 被抱的树 #2

    同学你好,同学未成功获取全部的地址,同学返回的链接缺少http://,则建议同学调用getRequestURL()方法返回全路径,如下所示:

    https://img1.sycdn.imooc.com//climg/615d70420902577412860360.jpg

    祝学习愉快!

    2021-10-06 18:31:56
  • 被抱的树 提问者 回复 好帮手慕小尤 #3
    老师我是有用getRequestURL()这个方法
    2021-10-06 18:36:18
WittChen 2021-10-05 16:32:07

根据你代码逻辑和返回结果,你把域名去掉不就好了吗,就是gethost()那里

https://img1.sycdn.imooc.com//climg/615c0d5709c3efec10230216.jpg

个人建议,域名在前端配

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师