通过使用Flask框架实现一个简单的图片上传工具,当用户提交图片后会自动将图片保存到upload目录下,代码如下

import os
from flask import Flask, request
import random
import string
import datetime ALLOWED_EXTENSIONS = set(['rar', 'zip' ,'xls','xlsx','docx','doc','html','png', 'jpg', 'jpeg', 'gif'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = "./upload_file" # 将文件上传到当前目录
app.config['MAX_CONTENT_LENGTH'] = 32 * 1024 * 1024 # 限制只能上传16M的文件 html = '''
<!DOCTYPE html>
<form action="" method="post" enctype="multipart/form-data">
请求序号: {} <br><br>
下单日期: {} <br><br>
接收邮箱: <input type="text" id="email" name="email"><br><br>
需求描述: <textarea rows="5" cols="37" id="my_text" name="my_text" value=""></textarea><br><br>
上传文件: <input type="file" name="file"><br><br>
<b>----------------------------------------</b>
<br> 注: 多个文件请压缩为 .rar .zip 压缩包后上传<br>
<b>----------------------------------------</b><br><br>
<input type="submit" value="提交订单请求">
</form>
'''
ref_html = '''
<b>------------------------------------------------------</b>
<br>您的订单已提交,感谢您的支持 <br>
<b>------------------------------------------------------</b><br><br>
付款订单号: {} <br><br>
接收邮件地址: {} <br><br>
请使用微信支付,并备注该订单号,处理完成后会第一时间邮件发送给您! <br><br>
---> PS图片处理 10元 每张 <br>
---> 打印复印材料 0.5元 每张 -> 宿舍: 3号楼 2层 210自提 <br><br>
<img style="width: 200px;" src="./static/web.jpeg" />
'''
def GenPassword(length):
chars=string.ascii_letters+string.digits
return ''.join([random.choice(chars) for i in range(length)])
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
@app.route('/', methods=['GET', 'POST'])
def upload_file():
if request.method == 'GET':
this_uuid = GenPassword(20)
now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M')
return html.format(this_uuid,now_time)
if request.method == 'POST':
ud = GenPassword(5)
try:
file = request.files.get("file")
email = request.form.get("email")
my_text = request.form.get("my_text")
if file == None or email == None or my_text == None:
return "接口错误"
if file and allowed_file(file.filename):
file.save(os.path.join(app.config['UPLOAD_FOLDER'], "{}_{}".format(ud,file.filename)))
print("*" * 200)
print("订单号: {} ---> 接收邮箱: {} ---> 文件名: {}_{} ---> 需求: {} \n\n".format(ud,email,ud,file.filename, my_text))
print("*" * 200)
return ref_html.format(ud,email)
except Exception:
pass
return "接口错误" if __name__ == '__main__':
app.run()

Flask 实现简单的图片上传的更多相关文章

  1. UEditor之实现配置简单的图片上传示例

    UEditor之实现配置简单的图片上传示例 原创 2016年06月11日 18:27:31 开心一笑 下班后,阿华到楼下小超市买毛巾,刚买完出来,就遇到同一办公楼里另一家公司的阿菲,之前与她远远的有过 ...

  2. 一、简单的图片上传并预览功能input[file]

    一.简单的图片上传并预览功能input[file] <!DOCTYPE html> <html lang="en"> <head> <me ...

  3. 微信小程序简单封装图片上传组件

    微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...

  4. 使用flask实现简单的文件上传

    from flask import Flask, redirect, render_template, request, url_forfrom werkzeug.utils import secur ...

  5. koa2实现简单的图片上传

    1.安装koa-body 2.引入koa-body const koa = require('koa'); const fs = require('fs'); const koaBody = requ ...

  6. PHP简单的图片上传

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. UEditor之实现配置简单的图片上传示例 转

    http://blog.csdn.net/huangwenyi1010/article/details/51637427 + http://blog.csdn.net/cr135810/article ...

  8. js简单的图片上传

    <input id="file" type="file" name="name" @change="aaa"> ...

  9. Webuploader 简单图片上传 支持多图上传

    简介: 通过webuploader 实现简单的图片上传功能,支持多张图上传 官方文档传送门:http://fex.baidu.com/webuploader/getting-started.html# ...

  10. Django中怎么做图片上传--图片展示

    1.首先是html页面的form表单的三大属性,action是提交到哪,method是提交方式,enctype只要有图片上传就要加这个属性 Django框架自带csrf_token ,所以需要在前端页 ...

随机推荐

  1. Java 剑指offer(16) 打印1到最大的n位数

    题目 输入数字n,按顺序打印出从1最大的n位十进制数.比如输入3,则打印出1.2.3一直到最大的3位数即999. 思路 陷阱: n过大时是大数问题,不能简单用int或者long数据输出,需要采用字符串 ...

  2. C# golang 开10000个无限循环的性能

    知乎上有人提了个问题,可惜作者已把账号注销了. 复制一下他的问题,仅讨论技术用,侵删. 问题 作者:知乎用户fLP2gX 链接:https://www.zhihu.com/question/63484 ...

  3. Ubuntu20.04上安装MySQL8.0(绝对保证能够正常使用)

    今天在学习 Spark 连接 MySQL时发现还没安装,便参考了厦门大学实验室的Blog进行操作.但安装完成之后发现没有显示设置密码的选择,但又改不掉root密码(头开始痛起来). 故记录一下安装My ...

  4. 如何做一次完美的 ABTest?

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/mO5MdwG7apD6RzDhFwZhog作者:DuZhimin 越来越多的公司都在尝试 AB ...

  5. eyebeam高级设置

    概述 VOIP测试过程中,经常会用到各种各样的SIP终端,eyebeam是其中最常见的一种. 在eyebeam的配置option中,只有少量的配置选项,有些特殊的设置无法配置. 比如DTMF码的发码形 ...

  6. shell脚本(8)-流程控制if

    一.单if语法 1.语法格式: if [ condition ] #condition值为 then commands fi 2.举例: [root@localhost test20210725]# ...

  7. 超全面总结Vue面试知识点,助力金三银四

    前言 本文会对Vue中一些常见的重要知识点以及框架原理进行整理汇总,意在帮助作者以及读者自测Vue的熟练度以及方便查询与复习.金三银四的到来,想必vue会是很多面试官的重点考核内容,希望小伙伴们读完本 ...

  8. 单例bean与原型bean的区别

    在使用Spring开发时,Spring提供了五种scope,分别为singleton,prototype,request,session,global session. 上图为各个scope描述的官方 ...

  9. 各种数据库shell一键登录的方法

    各种数据库shell一键登录的方法 一个小场景 想通过shell 直接执行一些内容. 然后发现通过shell就可以. 所以这里总结一下 1. Oracle export ORACLE_HOME=/u0 ...

  10. [转帖]PostgreSQL 10.0 preview 功能增强 - 国际化功能增强,支持ICU(International Components for Unicode)

    https://developer.aliyun.com/article/72935 标签 PostgreSQL , 10.0 , International Components for Unico ...