前端vue通过URL访问存储在服务器或磁盘的图片

前言

这里前端访问使用的是element

一、前端

说明:

scope.row.img 是后端返回的URL数组

<el-table-column sortable prop="img" label="图片" width="200">

        <template slot-scope="scope">

          <el-image style="width: 100px; height: 100px" :src="setImgUrl(scope.row)"  :preview-src-list="scope.row.img"></el-image>

        </template>

      </el-table-column>

--------------------------------------------------------------------

setImgUrl方法

/设置产品第一张图片

    setImgUrl(row) {

      if(row.img.length != 0) {

        return row.img[0]

      }else {

        return ""

      }

    }

二、后端 

1.配置文件

#文件上传保存路径
file.path.localPath=D:/Admind/java/project/crm/src/main/resources/images/

2.拦截器配置

注意:如果配置有其他的拦截器,一定要排除“/images/**”路径,不要拦截它

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Value("${file.path.localPath}")
private String path;
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    //图片访问
    registry.addResourceHandler("/" + FileUtils.getPathLastName(path) + "/**").addResourceLocations("file:" + path + "/");
}

}

 FileUtils工具类

工具类调用getPathLastName方法的目的是获取路径的最后一个目录名,作用是:配置文件存储图片的path的路径修改的时候,也同样能够访问得到,不用我们去到代码中进行修改,降低了冗余度。

public class FileUtils {
/**
 * 获取文件路径最后的名
 * @return
 */
public static String  getPathLastName(String path) {
    int i = path.lastIndexOf("/") + 1;
    return path.substring(i);
}

}

 3.访问效果

我的图片存在位置:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于前端Vue3访问后端Django的图片,你可以考虑以下两种方式: 1. 使用Django提供的静态文件服务 在Django项目中,可以通过配置静态文件的路径和URL来提供静态文件服务。例如,在`settings.py`文件中添加以下配置: ``` STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] ``` 其中,`STATIC_URL`是静态文件的URL前缀,`STATICFILES_DIRS`是静态文件的路径。 在Vue3中,可以通过以下方式访问静态文件: ``` <img :src="'/static/images/test.jpg'" alt="test"> ``` 其中,`/static`是Django中配置的静态文件URL前缀,`/images/test.jpg`是图片相对于静态文件路径的路径。 2. 使用Django提供的API接口 如果你想在Vue3中通过API接口来获取图片,可以在Django中编写API接口,返回图片的二进制数据。例如,在Django项目的`views.py`中添加以下代码: ``` from django.http import HttpResponse import os def get_image(request, filename): image_path = os.path.join(settings.BASE_DIR, 'media', filename) with open(image_path, 'rb') as f: image_data = f.read() return HttpResponse(image_data, content_type='image/jpeg') ``` 其中,`filename`是图片的文件名,在Vue3中通过API接口访问图片时需要提供。 在Vue3中,可以通过以下方式访问API接口: ``` <img :src="'/api/image/' + filename" alt="test"> ``` 其中,`/api/image/`是Django中配置的API接口URL前缀,`filename`是图片的文件名。在Vue3中,可以通过`props`或`data`来传递`filename`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值