vue获取图片的blob传给django后端

简介: vue获取图片的blob传给django后端


Vue.js中,你可以通过组合使用JavaScript的fetch API来获取图片的Blob数据,并通过HTTP请求将其发送到Django后端。以下是一个基本的示例,这个过程通常分为两个步骤:首先是在Vue组件中获取Blob数据并发送到后端,其次是在Django后端接收并处理这些数据。


前端Vue.js代码


Vue组件中,你可以使用fetch来获取图片的Blob数据,并使用FormData将其发送到后端。以下是一个Vue组件中的方法示例:


<template>
  <div>
    <!-- 假设有一个按钮用于触发图片上传 -->
    <button @click="uploadImage">上传图片</button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      imageURL: 'http://example.com/path/to/your/image.jpg', // 图片URL
    };
  },
  methods: {
    async uploadImage() {
      try {
        const response = await fetch(this.imageURL);
        const blob = await response.blob();
        const formData = new FormData();
        formData.append('image', blob, 'image.jpg'); // 'image.jpg'是文件名,根据实际情况修改
        // 发送请求到Django后端
        const uploadResponse = await fetch('/upload_image/', {
          method: 'POST',
          body: formData,
          // 注意:当使用FormData时,不需要手动设置Content-Type头部,浏览器会自动处理
        });
        if (!uploadResponse.ok) {
          throw new Error('Image upload failed');
        }
        const uploadResult = await uploadResponse.json();
        console.log('上传成功', uploadResult);
      } catch (error) {
        console.error('上传失败', error);
      }
    },
  },
};
</script>


后端Django代码


在Django后端,你需要创建一个视图来处理接收的图片数据:


# views.py
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
@csrf_exempt  # 如果你的前端和后端不在同一个域,可能需要禁用CSRF保护
def upload_image(request):
    if request.method == 'POST' and request.FILES.get('image'):
        image = request.FILES['image']
        save_path = 'uploads/images/' + image.name
        path = default_storage.save(save_path, ContentFile(image.read()))
        return JsonResponse({'message': '


相关文章
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
1143 1
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
572 6
|
JavaScript 前端开发 Python
django接收前端vue传输的formData图片数据
django接收前端vue传输的formData图片数据
366 4
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
912 1
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
1115 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
3066 0
|
存储 缓存 负载均衡
后端开发中的性能优化策略
本文将探讨几种常见的后端性能优化策略,包括代码层面的优化、数据库查询优化、缓存机制的应用以及负载均衡的实现。通过这些方法,开发者可以显著提升系统的响应速度和处理能力,从而提供更好的用户体验。
591 6
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
715 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
10月前
|
人工智能 Java API
后端开发必看:零代码实现存量服务改造成MCP服务
本文介绍如何通过 **Nacos** 和 **Higress** 实现存量 Spring Boot 服务的零代码改造,使其支持 MCP 协议,供 AI Agent 调用。全程无需修改业务代码,仅通过配置完成服务注册、协议转换与工具映射,显著降低改造成本,提升服务的可集成性与智能化能力。
2937 1
|
10月前
|
前端开发 Java 数据库连接
后端开发中的错误处理实践:原则与实战
在后端开发中,错误处理是保障系统稳定性的关键。本文介绍了错误分类、响应设计、统一处理机制及日志追踪等实践方法,帮助开发者提升系统的可维护性与排障效率,做到防患于未然。

热门文章

最新文章