首页 > 其他分享 >flask上传图片

flask上传图片

时间:2024-02-22 19:56:21浏览次数:30  
标签:__ flask upload filename import path 上传 图片

   

 

运行

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

相关文章

  • 图片隐写
    imageIN工具从取证赛题中嫖来了一个隐写工具imageIN,支持在图片文件中切入文本和文件嵌入文本 嵌入文件 ......
  • python 图片转文字小工具
    应群友要求,要做一个图片转文字的格式,因为有些人的简历中只有一张图片要提取他里面的文字就不好办了。于是就有了下面这个小工具:功能:选择要识别的图片后,识别出来后存到.txt文本中。实现原理,基于百度“文字识别”通用版的api接口调用。有一点需要说明的是可能无法识别百分百准确......
  • flask+bootstarp登录小案例
    python前后端交(web_login.py). fromflaskimportFlask,render_template,request,redirect,url_for,session,flashapp=Flask(__name__)@app.route('/login')defindex():returnrender_template('登录css.html')@app.route('/home&......
  • S3服务器上传问题
    客户S3环境有升级变迁,然后之前上传文件服务器出现异常问题生产环境S3服务器文件上传异常原因及解决方案:上传文件-异常信息如下:com.amazonaws.SdkClientException:Unabletoverifyintegrityofdataupload.Clientcalculatedcontenthash(contentMD5:EWsFdgDklAxX7zec1......
  • 使用html2Canvas截图网页时,网页存在图片报错:Tainted canvases may not be exported
     这是因为图片跨域产生的报错,看有的说法可以把所有图片进行允许跨域配置,但是比较麻烦。html2canvas有参数可以配置是否允许跨域 参数名称类型默认值描述allowTaintbooleanfalseWhethertoallowcross-originimagestotaintthecanvas---允许跨域background......
  • CTFer——文件上传漏洞——白名单检测
    代码文件中包含一个数组或者列表,包含一些合法的字符或者字符串 如何确认:上传一张图片与一个自己构造的后缀,如果只能上传照片,不能上传其他后缀文件,说明是白名单检测绕过方式:可以利用00截断的方式进行绕过,包含%00截断与0x00截断。 %00截断:%00是一个url编码,url发送到服务器后......
  • Flask 学习100-Flask-SocketIO 结合 xterm.js 实现网页版Xshell
    前言xterm.js是一个使用TypeScript编写的前端终端组件,可以直接在浏览器中实现一个命令行终端应用。可以实现web-terminal功能,类似于Xshell操作服务器。Flask-SocketIO快速入门与使用基础参考前面这篇https://www.cnblogs.com/yoyoketang/p/18022139前后端交互前端代码......
  • ABAP:GOS上传和下载附件功能
     GOS附件上传常用的几种对象类型:采购订单:BUS2012销售订单:BUS2032DN交货单:LIKP销售发票:VBRK采购发票:BUS2081会计凭证:BUS6035可以在TOJTT表中查找相关对象类型*&---------------------------------------------------------------------**&ReportZTEST_GOS......
  • 使用Java将视频中某一帧抽取为封面图片
    由于业务需求需将视频中的某帧进行截取作为该视频封面,网上太多教程过于复杂麻烦,经本人研究发现可以使用Java调用FFmpeg来进行处理。/***获取指定的视频文件后进行封面截图为png并保存到指定目录**@paramvideoFile视频媒体文件*@paramfileName文件名*/publicS......
  • 在线图片生成工具:定制化占位图片的利器
    在现代的网页设计和开发中,占位图片扮演着重要的角色。占位图片是指在开发过程中用于填充空白区域的临时图片,用于展示设计的布局和样式。为了满足不同设计需求,定制化占位图片成为了开发人员的必备工具。本文将介绍一款功能强大的在线图片生成工具,探讨占位图片在开发中的作用以......