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. 强势推荐8个功能强大,鲜为人知的实用软件
  2. iOS开篇——UI之UIStepper (计步器)
  3. flex----导航
  4. 通过计算机二级考试的计划,如何轻松通过国家计算机二级考试
  5. Boost:reference wrapper参考包装的测试程序
  6. OpenDNS,独特的免费DNS
  7. 404 错误页面_如何设计404错误页面,以使用户留在您的网站上
  8. Golang程序性能分析(一)pprof和go-torch
  9. 前端开发中的调试技巧
  10. 对付镜像网站非常有效的办法
  11. Web Components 系列(八)—— 自定义组件的样式设置
  12. Access数据库引擎
  13. CANape a2l文件的编辑教程
  14. Win10重装系统后的lockdir解密失败
  15. 苹果手机屏幕镜像_苹果手机还能一键投屏?点一下小屏变大屏幕,看剧是真畅快...
  16. 清华大学最新科研进展汇总(2020-2021年)
  17. 10.23 每日打卡
  18. pythonif嵌套语句题目_python中if嵌套的练习题有哪些?
  19. 新加坡企业是怎么做实名认证的?
  20. 苏轼不知月亮上是何年何月 | Python计算出来了

热门文章

  1. vue2+element-ui实现表格分页显示
  2. gpu-z中的几个上限
  3. 在Unity中模仿游戏《江南百景图》中物体的出现效果
  4. Python爬取全国大学排名 用pyecharts进行大屏可视化
  5. Java岗大厂面试百日冲刺【Day50】— 秒杀系统2 (日积月累,每日三题)
  6. PASCAL VOC DATASET
  7. 如何查看计算机在广域网的地址,如何知道本机当前局域网IP地址和广域网IP地址...
  8. 纯前端实现excel表格导入导出
  9. 纯前端导入excel表格数据
  10. word/论文版本管理方案