通过使用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. 一篇文章教你从入门到精通 Google 指纹验证功能

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/EHomjBy4Tvm8u962J6ZgsA作者:Sun Daxiang Google 从 An ...

  2. 解决SUM函数返回为NULL

    解决SUM函数返回为NULL SUM函数的作用:计算某一字段中所有行的数值和, 使用SUM函数进行对符合条件的结果行数进行求和. 问题产生: sum 求和时会对 null 进行过滤,不计算,但如果没有 ...

  3. 图扑 HT for Web 风格属性手册教程

    图扑软件明星产品 HT for Web 是一套纯国产化独立自主研发的 2D 和 3D 图形界面可视化引擎.HT for Web(以下简称 HT)图元的样式由其 Style 属性控制,并且不同类型图元的 ...

  4. 虚拟现实 VR 碰撞 3D 可视化,图扑打造一体化管控平台

    前言 工信部<虚拟现实产业发展白皮书 5.0 >中明确提出:"通过财政资金促进虚拟现实技术产业化,支持面向工业.文化.教育等重点行业的虚拟现实技术应用". 虚拟现实 V ...

  5. java项目实践-请求转发以及重定向-day18

    目录 1. 中文乱码问题 2. 请求的转发servlet 3. 登录后的重定向 4 总结 1. 中文乱码问题 创建一个工程secondweb 添加jar包依赖 new servlet web.xml添 ...

  6. 小白学标准库之 mux

    本文介绍第三方库 gorilla/mux,相比于 Go 自带的 net/http 它能提供更为强大的路由处理功能. mux 表示 HTTP request multiplexer (HTTP 请求多路 ...

  7. 万字血书Vue-Vue进阶

    Vue进阶 生命周期 组件运行的过程 组件的生命周期是:组件从创建->运行(渲染)->销毁的整个过程,是一个时间段 如何监听组件的不同时刻 vue框架为组件内置了不同时刻的生命周期函数,是 ...

  8. 线性代数 · 矩阵 · Matlab | Moore-Penrose 伪逆矩阵代码实现

    背景 - Moore-Penrose 伪逆矩阵: 对任意矩阵 \(A\in\mathbb C^{m\times n}\) ,其 Moore-Penrose 逆矩阵 \(A^+\in\mathbb C^ ...

  9. Linux复制安装 jdk 环境

    转载请注明出处: 最近在弄服务器环境,发现可以通过复制已安装 jdk 的服务器配置到新的服务器,并配置服务器环境变量配置文件就可以完成. 操作步骤如下: 1. 查看以安装jdk服务器的环境配置,并复制 ...

  10. 使用Java分析器优化代码性能,解决OOM问题

    有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 背景 最近我一直在做性能优化,对一个单机应用做性能优化.主要是 ...