flask -- 实现客户端文件(图片)上传与解析(转为base64编码)


flask实现客户端上传图片与base64编码转换

参考链接:https://blog.csdn.net/weixin_36380516/article/details/80347192

测试代码:

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# Author: elfin-2020
# project: ImgPushWeb

import os
import sys
import base64
import socket
from flask import Flask, request, jsonify, render_template
sys.path.append(os.path.abspath(__file__).split("Img2Web")[0])

path_dir = os.path.dirname(os.path.abspath(__file__))
hostname = socket.gethostname()
ip_dir = socket.gethostbyname(hostname)

ALLOWED_EXTENSIONS = {'png', 'PNG'}


def allowed_file(filename):
	return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS


def set_app():
	# 初始化Flask对象
	#####################################################
	app = Flask(__name__, template_folder='../templates')
	# 设置前端中文不乱码
	app.config["JSON_AS_ASCII"] = False
	#####################################################

	@app.route("/img", methods=["GET"])
	def web_load():
		return render_template("admin.html")

	@app.route("/img", methods=["POST"])
	def img_pull():
		res_dict = {
			"code": 0,
			"msg": "执行失败",
			"data": {},
		}
		file = request.files.get("img")
		img_base64 = request.form.get("base64")
		if not file:
			res_dict["msg"] = "没有上传图片"
			return jsonify(res_dict)
		if not allowed_file(file.filename):
			res_dict["msg"] = "请上传png/PNG格式的图片"
			return jsonify(res_dict)

		# 将图片转为base64编码
		#################################################
		# 获取图片文件对象的数据流
		img_stream = file.stream.read()
		img_base64 = base64.b64encode(img_stream)
		#################################################
		
		res_dict["code"] = 1
		res_dict["msg"] = "执行成功"
		res_dict["data"]["img_stream"] = str(img_base64)
		print(dir(file.stream))
		return jsonify(res_dict)

	app.run(host=ip_dir, port=10018, debug=True)


if __name__ == '__main__':
	set_app()



免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM