运行
python main.py
访问
http://127.0.0.1:8987/upimg
main.py
# coding:utf-8 from flask import Flask, render_template, request, redirect, url_for, make_response,jsonify from werkzeug.utils import secure_filename import os import cv2 import time from datetime import timedelta #设置允许的文件格式 ALLOWED_EXTENSIONS = set(['png', 'jpg', 'JPG', 'PNG', 'bmp']) def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS app = Flask(__name__) # 设置静态文件缓存过期时间 app.send_file_max_age_default = timedelta(seconds=1) # @app.route('/upload', methods=['POST', 'GET']) @app.route('/upimg', methods=['POST', 'GET']) # 添加路由 def upload(): #第一次访问直接返回upload.html if request.method == 'POST':# 上传图片返回upload_ok.html f = request.files['file'] if not (f and allowed_file(f.filename)): return jsonify({"error": 1001, "msg": "请检查上传的图片类型,仅限于png、PNG、jpg、JPG、bmp"}) user_input = request.form.get("name") basepath = os.path.dirname(__file__) # 当前文件所在路径 upload_path = os.path.join(basepath, 'static/images', secure_filename(f.filename)) # 注意:没有的文件夹一定要先创建,不然会提示没有该路径 # upload_path = os.path.join(basepath, 'static/images','test.jpg') #注意:没有的文件夹一定要先创建,不然会提示没有该路径 f.save(upload_path) # 使用Opencv转换一下图片格式和名称 img = cv2.imread(upload_path) cv2.imwrite(os.path.join(basepath, 'static/images', 'test.jpg'), img) return render_template('upload_ok.html',userinput=user_input,val1=time.time()) # image_data = open(upload_path, "rb").read() # response = make_response(image_data) # response.headers['Content-Type'] = 'image/png' # return response return render_template('upload.html') if __name__ == '__main__': # app.debug = True app.run(host='0.0.0.0', port=8987, debug=True)
templates
upload.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传图片</title> </head> <body> <h1>上传图片</h1> <form action="" enctype='multipart/form-data' method='POST'> <input type="file" name="file" style="margin-top:20px;"/> <br> <i>请输入:</i> <input type="text" class="txt_input" name="name" value="" style="margin-top:10px;"/> <input type="submit" value="上传" class="button-new" style="margin-top:15px;"/> </form> </body> </html>
upload_ok.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>上传图片</title> </head> <body> <h1>上传图片</h1> <form action="" enctype='multipart/form-data' method='POST'> <input type="file" name="file" style="margin-top:20px;"/> <br> <i>请输入:</i> <input type="text" class="txt_input" name="name" value="" style="margin-top:10px;"/> <input type="submit" value="上传" class="button-new" style="margin-top:15px;"/> </form> <h1>图片上传成功{{userinput}}!</h1> <img src="{{ url_for('static', filename= './images/test.jpg',_t=val1) }}" width="640" height="480" alt="你的图片被外星人劫持了~~"/> </body> </html>
static/images
第一个是上传的原图
test是用于返回网页使用的照片
标签:__,flask,upload,filename,import,path,上传,图片 From: https://www.cnblogs.com/gooutlook/p/18028031