使用flask-dropzone 上传图片文件
引用 http://greyli.com/flask-dropzone/
现在需要上传图片文件的页面使用jijin2渲染,由于是使用flask-dropzone的,所以我们使用dropzone的css和js 来进行一个渲染
首先
# 先添加这个 css,js 和样式
{{ dropzone.load_css() }}
{{ dropzone.load_js() }}
{{ dropzone.style('border: 2px dashed #0087F7; margin: 10%') }} # 再用这个指定进行上传的视图函数 在action中指定
{{ dropzone.create(action=url_for("user.upload")) }}
在给个页面上传文件会到指定的函数中去
例子为
@user.route('/upimage/',methods=['GET','POST'])
@login_required
def upload():
if request.method == 'POST':
f = request.files.get('file') # 获取文件对象
# 创建文件夹
basefile = os.path.join(os.path.abspath('static'),'image')
if not os.path.exists(basefile):
os.mkdir(basefile)
# 验证后缀
ext = os.path.splitext(f.filename)[1]
if ext.split('.')[-1] not in UPLOAD_IMAGE_TYPE:
return 'Image only!', 400
# 生成文件名 使用uuid模块
filename = get_uuid(ext)
path = os.path.join(basefile,filename)
f.save(path)
# 将文件路径保存到定义的模型中,这里我定义了一个用户类,一个图片路径类,current_user 是flask_login带的当前用户信息
curent_user_tosave_imagepath(current_user,path)
return render_template('upload.html')
UPLOAD_IMAGE_TYPE 为自定义类型,不使用dropzone的 # 设置的图片上传 限制后缀
UPLOAD_IMAGE_TYPE = ['JPG','GIF','PNG','png','jpg','gif','JPEG','jpeg'] # 如果有其他需求,比如文本,视频,则可以一样定义
UPLOAD_VIDEO_TYPE = ['MP4','mp4','xxx','xxx','xx','xx','xx','x']
curent_user_tosave_imagepath
curent_user_tosave_imagepath 保存图片路径到数据库 def curent_user_tosave_imagepath(current_user,path):
img = Image()
img.img_path = path
img.user_id = current_user.id try:
db.session.add(img)
db.session.commit()
except:
db.session.rollback()
使用flask-dropzone 上传图片文件的更多相关文章
- flask前端上传图片/文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- php上传图片文件常用的几个方法
1. 前台 <form class="add-form" method="post" action="/person/save" en ...
- [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)
通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上 ...
- FLask上传文件
目录 Flask上传文件 改进上传 上传进度条 一个更简便的方案 Flask上传文件 文件上传的基本原理实际上很简单,基 本上是: 一个带有 enctype=multipart/form-data 的 ...
- 利用Spring MVC 上传图片文件
本文转自:http://amcucn.iteye.com/blog/264457.感谢作者 近日在工作当中,需要用到上传图片的功能,然而自己平时学习的时候只会使用struts的上传功能,但因为项目并没 ...
- 小白学flask之静态文件
引入css的方式有两种 1 那在flask中,如何处理静态文件? 做法很简单,只要在你的包或模块旁边创建一个名为 static 的文件夹就行了. flask的静态文件是位于应用的 /static 中的
- html+php上传图片文件到服务器
html+php上传图片文件到服务器 一.html代码 <body> <form action="" method="post" enctyp ...
- ajax上传图片文件
这里用的是一个隐藏的iframe,这样可以让form表单提交到这个iframe里面,用户就看不到页面的刷新了 前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题 ...
- Flask笔记:文件上传
文件上传 enctype:在HTML中的form表单中form标签默认是`enctype="application/x-www-form-urlencoded"`,在文件上传时需要 ...
随机推荐
- rxjava2 dependency
<dependency> <groupId>io.reactivex.rxjava2</groupId> <artifactId>rxjava</ ...
- python与模块的导入方式
今日所得 模块 import from...import... 循环导入 相对导入 绝对导入 软件开发目录规范 模块 模块:是一系列功能的集合体 模块的三种来源:1.内置模块(Python解释器自带的 ...
- ASP.NET ASHX 一般处理程序教程
你不想创建一个普通ASP.NET的Web窗体页.而又要通过一个查询字符串返回一个动态的图片.XML或者非HTML网页.这是一个用C#编程语言编写的使用ASHX(一般处理程序)的简单教程. 简介 首先, ...
- FFT(快速傅里叶变换) 模板
洛谷 P3803 [模板]多项式乘法(FFT)传送门 存个板子,完全弄懂之后找机会再写个详解. #include<cstdio> #include<cmath> struct ...
- sshd启动故障“Failed to start OpenSSH Server daemon ”解决方法
- JAVA线程笔记。
继承thread类 并覆写thread类中的run()方法. class 类名称 extents Thread{public void run(){}}实现Runble接口的run方法 线程的star ...
- dotfuscator安装
1.vs 2017 安装 dotfuscator 组件 打开vs 2017 按 ctrl + Q在输入框中输入“dotfuscator” ,选中第一个. 2.安装完成后即可在vs的工具中看到该组件 3 ...
- Android ListView 常用技巧总结
本文对 ListView 中的一些常用技巧做一个总结.附:虽然现在 RecyclerView 已逐渐取代 ListView,但实际情况是大部分项目中还在使用 ListView.当然,后续我会在我的博客 ...
- fetch API 和 ajax
fetch('/some.json', { method: 'get', body: { id: 22 } }).then(function (resp) { resp.json().then(con ...
- Mybatis--映射器注解
因为最初设计时,MyBatis 是一个 XML 驱动的框架.配置信息是基于 XML 的,而且 映射语句也是定义在 XML 中的.而到了 MyBatis 3,有新的可用的选择了.MyBatis 3 构建 ...