python flask+vue实现前后端图片上传

python flask+vue实现前后端图片上传

vue代码如下:

<template>
 <div>
    <input type="file"  @change="handleFileChange"/>
  
       <button @click="uploadFile">上传</button>
       <br>
      <img :src="imageUrl" v-if="imageUrl">
  </div>
</template>

<script>
import axios from "axios";

 
export default {
  data() {
    return {
      imageUrl: '',
    };
  },
  methods: {
    handleFileChange(e) {
      this.file=e.target.files[0];
      const file = e.target.files[0];
      const reader = new FileReader();
      reader.readAsDataURL(file);
      reader.onload = () => {
        this.imageUrl = reader.result;
        this.uploadImage(file);
      };
    },

    uploadFile() {
      const formData = new FormData();
      formData.append('file', this.file);
 
      // 发送文件到后端
      axios.post('http://localhost:5000/upload', formData, {
        headers: {
          'Content-Type': 'multipart/form-data'
        }
      })
          .then(response => {
            console.log(response.data);
            // 在这里你可以处理上传成功的逻辑
            if ('error' in response.data) {
              alert(response.data.error);
              return
            }
            // 显示成功消息
            alert(response.data);
          })
          .catch(error => {
            console.error(error);
            // 在这里你可以处理上传失败的逻辑
 
            // 显示错误消息
            alert('文件上传失败');
          });
    }
  }
};
</script>
 
<style scoped>
/* Add your CSS styles here */
div {
  margin: 20px;
}
 
input {
  margin-bottom: 10px;
}
 
button {
  padding: 10px;
  background-color: #4caf50;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
 
button:hover {
  background-color: #45a049;
}
</style>
 

flask后端代码如下:

from flask import Flask, request, jsonify
import os
from flask_cors import CORS  # 导入CORS模块
 
# 文件存储的目录
UPLOAD_FOLDER = 'uploads'
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}
 
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
 
# 启用CORS
# CORS(app)
CORS(app, resources={r"/*": {"origins": "*"}})  # 允许所有来源
 
# 设置文件上传大小限制为 16 MB
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024  # 16 MB
 
def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
 
@app.route('/')
def index():
    return 'Hello World!'
 
 
@app.route('/upload', methods=['POST'])
def upload_file():
    if 'file' not in request.files:
        return jsonify({'error': '上传的非图片'})
 
    file = request.files['file']
 
    if file.filename == '':
        return jsonify({'error': '没选择图片'})
 
    if file and allowed_file(file.filename):
        print(file)
        print(file.filename)
        filename = file.filename
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
        return jsonify({'message': '上传图片成功'})
    else:
        return jsonify({'error': '无效'})
 
if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

实现效果如下:在这里插入图片描述

然后会在我们后端代码工作目录下保存图片。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/261543.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深度相机—TOF、RGB双目、结构光原理及优势对比

烟台致瑞图像视觉技术2021-03-18 15:14 目前的深度相机根据其工作原理可以分为三种&#xff1a;TOF、RGB双目、结构光。 一、TOF TOF是Time of flight的简写&#xff0c;直译为飞行时间的意思。所谓飞行时间法3D成像&#xff0c;是通过给目标连续发送光脉冲&#xff0c;然后…

sourcetree 无效的源路径 细节提示:系统找不到指定的文件

工具–>选项–>git 直接下拉到底 点击红框&#xff0c;重新下载一个内嵌git就可以了 我感觉是因为改变了原有git安装路径的问题

2023 英特尔On技术创新大会直播 |探索视觉AI的无限可能

2023 英特尔On技术创新大会直播 | 探索视觉AI的无限可能 前言一未来的 AI&#xff1a;释放视觉 AI 真正潜力二AI技术突破、视觉Al挑战及前沿研究创新三全尺度视觉学习全尺度视觉学习示例1.GridConv 实现三维人体姿态估计更高准确率2.KW 预训练及迁移模型性能3.无数据增强稠密对…

大数据时代,如何基于机密虚拟化技术构建数据安全的“基石”

云布道师 2023 年 10 月 31 日-11 月 2 日&#xff0c;2023 云栖大会在中国杭州云栖小镇举行&#xff0c;阿里云弹性计算产品专家唐湘华、阿里云高级安全专家刘煜堃、蚂蚁集团高级技术专家肖俊贤三位嘉宾在【云服务器 & 计算服务】专场中共同带来题为《大数据时代&#xf…

使用MybatisPlus置空某些指定字段

当前的MybatisPlus默认会对空实体内的字段不置空&#xff0c;所以才引出了此种方法&#xff0c;很方便简单&#xff1a; 使用 Wrappers.lambdaUpdate方法就可以解决&#xff0c;方法的源码如下&#xff1a;条件为entity内的值&#xff0c;使用lambdaUpdate去set空的值 举个例子…

ETLCloud与简道云结合,实现企业信息同步

ETLCloud介绍 ETLCloud是一个集离线数据集成ETL、ELT、CDC实时数据集成、编排调度、数据服务API为一体的数据集成平台(DataOps)&#xff0c;一站式满足企业的各种最为复杂的数据集成场景。提供私有化部署能力和云原生架构&#xff0c;满足企业不同发展阶段的业务需求。 提供开放…

【蓝桥杯一对一保奖辅导】国奖学姐蓝桥杯经验分享

目录 写在前面有关报名费如何准备&#xff1f;看书 /练习 /分类 /总结比赛技巧与指导 写在前面 蓝桥杯对于计算机专业相关的同学来说是非常值得参加的。 蓝桥杯相对于ACM比赛而言获奖难度较小&#xff0c;只要掌握技巧&#xff0c;拿到 省一甚至国奖是比较容易的&#xff0c;但…

每日一题,二维平面

给你 二维 平面上两个 由直线构成且边与坐标轴平行/垂直 的矩形&#xff0c;请你计算并返回两个矩形覆盖的总面积。 每个矩形由其 左下 顶点和 右上 顶点坐标表示&#xff1a; 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, …

LVM系统逻辑卷

1.lvm的来源 我们在工作中经常遇到服务器存储数据的分区磁盘空间不够的情况&#xff0c;尤其是当我们的业务是视频的时候&#xff0c;大批量用户上传和下载视频&#xff0c;磁盘空间需要不停的调整。如果我们作为运维每天的工作就是加硬盘是不是有点扯&#xff0c;而且换硬盘的…

伦敦金交易内地与香港有何区别

伦敦金交易是国际银行间市场层面的现货黄黄金交易&#xff0c;亚洲市场的交易中心在中国香港&#xff0c;现在不管是香港本地还是内地的投资者&#xff0c;都可以在网上开户&#xff0c;通过香港的平台参与伦敦金交易&#xff0c;所得到的服务是同等的、公平的、与国际市场接轨…

【小黑嵌入式系统第十一课】μC/OS-III程序设计基础(一)——任务设计、任务管理(创建基本状态内部任务)、任务调度、系统函数

上一课&#xff1a; 【小黑嵌入式系统第十课】μC/OS-III概况——实时操作系统的特点、基本概念&#xff08;内核&任务&中断&#xff09;、与硬件的关系&实现 文章目录 一、任务设计1.1 任务概述1.2 任务的类型1.2.1 单次执行类任务&#xff08;运行至完成型&#…

Py之tensorflow-addons:tensorflow-addons的简介、安装、使用方法之详细攻略

Py之tensorflow-addons&#xff1a;tensorflow-addons的简介、安装、使用方法之详细攻略 目录 tensorflow-addons的简介 tensorflow-addons的安装 tensorflow-addons的使用方法 1、使用 TensorFlow Addons 中的功能&#xff1a; tensorflow-addons的简介 TensorFlow Addon…

Istio 社区周报(第一期):2023.12.11 - 12.17

欢迎来到 Istio 社区周报 Istio 社区朋友们&#xff0c;你们好&#xff01; 我很高兴呈现第一期 Istio 社区周报。作为 Istio 社区的一员&#xff0c;每周我将为您带来 Istio 的最新发展、有见地的社区讨论、专业提示和重要安全新闻内容。 祝你阅读愉快&#xff0c;并在下一期中…

【RK3288 Android6 T8, 突然无声音问题排查】

【RK3288 Android6 T8&#xff0c; 突然无声音问题排查】 问题背景: T8 android6 6.0.10在测试过程中突然出现弹窗音量进度条&#xff0c;然后小铃铛图标被禁用&#xff0c;意为静音&#xff0c;退出app后&#xff0c;打开设置的音量设置&#xff0c;发现notification的音量被…

IEEE TASLP | 联合语音识别与口音识别的解耦交互多任务学习网络

尽管联合语音识别&#xff08;ASR&#xff09;和口音识别&#xff08;AR&#xff09;训练已被证明对处理多口音场景有效&#xff0c;但当前的多任务ASR-AR方法忽视了任务之间的粒度差异。细粒度单元&#xff08;如音素、声韵母&#xff09;可用于捕获与发音相关的口音特征&…

手写单链表(指针)(next域)附图

目录 创建文件&#xff1a; 具体实现&#xff1a; 首先是头插。 注意&#xff1a;一定要注意&#xff1a;再定义tmp时&#xff0c;要给它赋一个初始值&#xff08;推荐使用 new list_next) 接着是尾插&#xff1a; 随后是中间插&#xff1a; 然后是最简单的改值&#xf…

人工智能边缘计算:连接智能的边界

导言 人工智能边缘计算是将智能计算推向数据源头的重要发展方向&#xff0c;本文将深入探讨边缘计算与人工智能的交融&#xff0c;以及在未来数字化社会中的前景。 1. 边缘计算的基础 分布式计算&#xff1a; 边缘计算通过将计算任务推送至数据产生的地方&#xff0c…

IspSrv-互联网访问检测器

2023年全国网络系统管理赛项真题 模块B-Windows解析 题目 为了模拟Internet访问测试,请搭建网卡互联网检测服务。使用ispsrv.chinaskills.global站点模拟互联网检测服务器配置检测文件内容为internet。允许互联网区域客户端访问AppSrv上的HTTP资源。答题步骤 可以在注册表中找…

轻量级web开发框架Flask本地部署及无公网ip远程访问界面

文章目录 前言1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 前言 本篇文章讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网上并进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用P…

阿里云经济型、通用算力型、计算型、通用型、内存型云服务器最新活动报价

阿里云作为国内领先的云计算服务提供商&#xff0c;提供了多种规格的云服务器供用户选择。为了满足不同用户的需求&#xff0c;阿里云推出了经济型、通用算力型、计算型、通用型和内存型等不同类型的云服务器。下面将详细介绍这些云服务器的最新活动报价。 一、阿里云特惠云服…
最新文章