VUE前端如何处理后端接口返回的图片详解

 更新时间:2024年09月28日 11:20:38   作者:我一个达不溜  
在现代Web开发中,前端应用经常需要从后端接口获取图片数据,下面这篇文章主要介绍了VUE前端如何处理后端接口返回的图片的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

后端接口设计:

  • setting中配置文件上传路径:
MEDIA_ROOT = BASE_DIR / 'yourFiles'
  • 创建文件上传模型,使用FileField模型字段存储文件对象:
    class UploadFile(models.Model):
        """上传文件模型"""
        file = models.FileField('文件', help_text='文件上传')
        info = models.JSONField('文件信息', help_text='文件信息', default=list, null=True, blank=True)

上传的文件保存在项目目录下的yourFiles目录下,部署以后,存放在容器的/app/yourFiles目录下

  • 创建序列化器、配置urls等,在序列化器中新增一个方法,用于预览图片:
    class UploadFileViewSet(viewsets.ModelViewSet):
        """文件上传视图集"""
        queryset = UploadFile.objects.all()
        serializer_class = UploadFileSerializer
        
        ...
            
        @action(['get'], detail=True)
        def show(self, request, pk, *args, **kwargs):
            # 获取对象
            try:
                instance = self.get_object()
                # instance.file.size()
                return FileResponse(instance.file.open(mode='rb'))
            except:
                return response.Response({'msg':'Not Found!'}, status=404)

    调用接口返回图片文件:

前端处理

在axios封装的api请求中新增:

   // 查看图片
    showImg(id){
        return api.get(`/upload/${id}/show/`, {responseType:'blob'})  // 后端返回的是一张图片,这里一定要加responseType
    },

注意这里一定要新增 {responseType:'blob'}。后端返回的是一个图片文件:

前端展示图片的方法中通过window.URL获取图片文件的URL,作为img标签的src值:

this.imageUrl = window.URL.createObjectURL(response.data);

总结

到此这篇关于VUE前端如何处理后端接口返回的图片的文章就介绍到这了,更多相关VUE处理后端接口返回图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一看就会的vuex实现登录验证(附案例)

    一看就会的vuex实现登录验证(附案例)

    这篇文章主要介绍了一看就会的vuex实现登录验证(附案例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Vue2.0实现1.0的搜索过滤器功能实例代码

    Vue2.0实现1.0的搜索过滤器功能实例代码

    本篇文章主要介绍了Vue2.0实现1.0的搜索过滤器功能实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-03-03
  • 关于Vue中img动态拼接src图片地址的问题

    关于Vue中img动态拼接src图片地址的问题

    这篇文章主要介绍了关于Vue中img动态拼接src图片地址的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • 基于前端VUE+ElementUI实现table行上移或下移功能(支持跨页移动)

    基于前端VUE+ElementUI实现table行上移或下移功能(支持跨页移动)

    有时候需要前端实现上移和下移功能,下面这篇文章主要给大家介绍了关于如何基于前端VUE+ElementUI实现table行上移或下移(支持跨页移动)的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-07-07
  • Vue实现拖拽式分割布局

    Vue实现拖拽式分割布局

    这篇文章主要为大家详细介绍了Vue实现拖拽式分割布局,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue实现简易购物车页面

    Vue实现简易购物车页面

    这篇文章主要为大家详细介绍了Vue实现简易购物车页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 一篇超完整的Vue新手入门指导教程

    一篇超完整的Vue新手入门指导教程

    这篇文章主要给大家介绍了关于Vue入门的相关资料,是一篇超完整的Vue入门教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Vue实现选择城市功能

    Vue实现选择城市功能

    这篇文章主要介绍了Vue实现选择城市功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-05-05
  • vue中利用prop进行父子通信时的注意事项总结

    vue中利用prop进行父子通信时的注意事项总结

    这篇文章主要给大家介绍了关于vue中利用prop进行父子通信时的注意事项,文中通过实例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Monaco-editor 的 JSON Schema 配置及使用介绍

    Monaco-editor 的 JSON Schema 配置及使用介绍

    这篇文章主要为大家介绍了Monaco-editor 的 JSON Schema 配置及使用介绍,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10

最新评论