1 代码

@app.route('/predict', methods=['POST'])
def predict():# 获取传送过来的完整原始图像file = request.form.get('file')print('file type', type(file))data_url = str.split(file, ',')[1]print('data_url type:', type(data_url))print('data_url:', data_url)img_data = base64.urlsafe_b64decode(data_url + '=' * (4 - len(data_url) % 4))print('type data 1:', type(img_data))img_data = np.frombuffer(img_data, np.uint8)print('type data 2:', type(img_data))img_arr = cv2.imdecode(img_data, cv2.IMREAD_COLOR)print('type data 3:', type(img_data))cv2.imwrite("./uploadImages/" + str(time()) + "_img.png", img_arr)

2 代码说明

接受文件数据最重要的是对各种文件数据类型的处理,先贴一下上述代码的运行结果:


处理过程:
1)从结果可以看出,flask后端接受的’file’为字符串形式,即对应的是base64编码的图片文件地址url;
2)需要注意的是使用base64编码的图片URL地址,其内容不是单纯的图片数据,还包括一个代表base64编码信息的文件头,如下图中的红色方框中圈出来的部分所示。所以需要从这个URL中提取图片数据的部分,而丢弃这部分没用的文件头,具体做法就是通过定位“,”来将这个URL划分为文件头和文件数据两部分,这里只需要后面一部分就可以了

3)在得到图片纯数据URL之后,我们需要对其进行base64的解码,解码的结果是bytes类型
4)使用np.frombuffer(data, 数据类型)这种方式将bytes类的数据按照给定的数据类型进行解析,这样得到的数据类型是numpy数组类型,这里的numpy数组的shape是一维的!!!
5)cv2.imdecode的用法是从指定的内存缓存中读取数据,并将数据转化为图片格式,通常用于从网络数据中恢复图像。

备注:个人觉得这里的(5)不一定需要,但是一时也找不到当时参考的那篇博文了。

flask后端接受图片文件数据相关推荐

  1. python后端将svc文件数据读入数据库具体实现

    如何用python将svc文件的数据读入到MySQL数据库里,在此直接上代码了,感兴趣的朋友可以贴代码测试: import pandas as pd import os from sqlalchemy ...

  2. 后端——获取提交的数据(GET、 POST)、获取上传的文件、常见的网络请求

    目录 一.获取提交的数据 1.接收GET请求的数据: 1.ajax-get 2.axios-get 3.浏览器的地址栏-get 4.a标签的href属性-get 5.img-src-get 6.lin ...

  3. vue xlsx 导入导出_只需三步vue实现excel文件数据提取并存为json数据

    前言: 以前将excel数据导入到数据库是通过前端,将excel文件上传到后端,通过后端语言进行相应的加工将excel文件中的数据取出并存入数据库:从而实现数据库的存入流程.但是这也带来了一些问题,首 ...

  4. ajax 请求二进制流 图片 文件 XMLHttpRequest 请求并处理二进制流数据 之最佳实践

    本文转自一位高人的博客:情郎 Blog 写在前面 :从提出需求到完美的解决问题,实现过程是曲折的. 需求:在前(web client)后(Restful Service)端完全解耦的模式框架下,web ...

  5. 【Android 应用开发】Paint 滤镜原理 之 图像结构 ( 图片文件二进制分析 | PNG文件结构 | 数据块结构 | IHDR 数据块详解 )

    文章目录 图形文件准备 ( PNG 文件 ) PNG 文件信息分类 数据块结构 IHDR 数据块 简介 IHDR 数据块 结构 图形文件准备 ( PNG 文件 ) 分析的文件准备 : 1.创建文件 : ...

  6. vue删除图片同时删除本地文件_删除图片数据时同时删除图片文件夹里面的相应图片文件的方法...

    作者:Mr.XQIJIANG 本文版权归[Mr.XQIJIANG]所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. /// /// 删除图 ...

  7. 前端传来的图片并保存_前端处理后端接口传递过来的图片文件

    背景 在之前,从来都是后端返一个图片地址,然后前端直接使用. 那如果后端返了一个图片文件过来,那要怎么做? 参考: vue axios请求图片流文件前端页面显示处理方法 background url ...

  8. mysql接受表单数据类型_PHP如何接收表单数据数组并插入MySQL数据库?其中表单数据类型包括图片文件类型,要实现图片..._慕课问答...

    //下面是我的代码,已经困扰我两个星期了,希望大神帮忙解决. //前端的表单为一个table表格,点击"添加"按钮会自动增加新的一行,然后是把所有行的数据写入到数据库,每行都有一个 ...

  9. python 如何使用 pandas 在 flask web 网页中分页显示 csv 文件数据

    目录 一.实战场景 二.知识点 python 基础语法 python 文件读写 python 分页 pandas 数据处理 flask web 框架 jinja 模版 三.菜鸟实战 初始化 Flask ...

最新文章

  1. GridView中实现CheckBox的全选
  2. python进程间通信的秘密
  3. 系统升级页面html,页面访问界面升级
  4. ASP.NET MVC3中的ViewBag动态性
  5. 动态绑定 datagridview
  6. mysql 手动配置服务器_Win7系统下手动配置Apache+PHP+MySQL环境WEB服务器 -电脑资料...
  7. 1.视频压缩编码综述
  8. linux 蓝牙攻击,研究人员担心BleedingTooth蓝牙漏洞给Linux系统带来风险
  9. iis php日志查看工具,教你如何查看IIS日志
  10. html文本框%3cdiv%3e,index.html
  11. mysql not regexp_mysql 正则表达式 regexp rlike not rlike
  12. (转载)Tuxedo中间件简介
  13. 固态硬盘安装window系统的一些注意事项
  14. Arcgis api for JavaScript 4.12解读-----symbol
  15. MAC 网桥-交换机
  16. springboot 自定义拦截器 防止恶意请求
  17. 使用Python爬取网页图片
  18. 时间管理 |《小强升职记》学习笔记 | Part1
  19. 转Draren总结的ollydbg v1.09d 中文版使用说明
  20. 二层交换基础、stp、acl、nat、wan

热门文章

  1. kettle工具坐mysql数据迁移_Kettle数据迁移的安装及使用
  2. 转子豪兄 树莓派上安装OpenCV
  3. java技术及ssh框架和jsp技术的介绍 外文文献及翻译_java技术及ssh框架和jsp技术的介绍 外文文献及翻译.doc...
  4. 五子棋java百度文库_JAVA课程设计 五子棋(内附完整代码).doc
  5. 一个与众不同的苹果--苹果产品制胜之道
  6. python实现mongodb数据导入到mysql
  7. 计算机专业优秀毕业生,计算机专业优秀毕业生求职信
  8. [分享] 揭开美国顶尖生物医学实验室成功的法宝--转
  9. 开源DirectShow分析器和解码器: LAV Filter
  10. hdu2075 A|B?(C语言)