python 解决flask 图片在线浏览或者直接下载的问题


Posted in Python onJanuary 09, 2020

目前是把图片存在mongodb数据库,实现一个方法,比如 访问 /get_pic/ID 能实现图片在浏览器打开,添加了一个状态,比如?filename=1.png,实现图片直接下载,

需要在读取图片函数中,给response 加上headers:

在 flask 中

response=make_response(f.read())

需要下载就添加以下headers

当filename为中文时会报asicc编解码错误,

此时,import urllib (py3)

filename=urllib.parse.quote(filename) 用该函数进行编码,

response.headers['Content-Type'] = 'application/octet-stream'
response.headers['Content-Disposition'] = 'attachment;filename="{0}"'.format(filename)
return response

如让浏览器能缓存该图片需要添加以下设置

response.last_modified = 资源上次修改时间
response.set_etag(etag)
response.expires = 过期时间(好像只有这个就可以生效)

以上这篇python 解决flask 图片在线浏览或者直接下载的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python3.x对JSON的一些操作示例
Sep 01 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
Mac中Python 3环境下安装scrapy的方法教程
Oct 26 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
Dec 10 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
Django框架之登录后自定义跳转页面的实现方法
Jul 18 Python
使用pycharm在本地开发并实时同步到服务器
Aug 02 Python
Pytorch中.new()的作用详解
Feb 18 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
May 19 Python
Python获取android设备cpu和内存占用情况
Nov 15 Python
教你怎么用Python生成九宫格照片
May 20 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 Python
Django密码存储策略分析
Jan 09 #Python
python 实现Flask中返回图片流给前端展示
Jan 09 #Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 #Python
python将图片转base64,实现前端显示
Jan 09 #Python
Python 解码Base64 得到码流格式文本实例
Jan 09 #Python
Python变量、数据类型、数据类型转换相关函数用法实例详解
Jan 09 #Python
Python+OpenCV实现旋转文本校正方式
Jan 09 #Python
You might like
PHP的博客ping服务代码
2012/02/04 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
PHP运行模式的深入理解
2013/06/03 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Ubuntu彻底删除PHP7.0的方法
2018/07/27 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
JavaScript中的style.display属性操作
2013/03/27 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
Javascript中的几种继承方式对比分析
2016/03/22 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
pygame播放音乐的方法
2015/05/19 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
Python自动化运维_文件内容差异对比分析
2017/12/13 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
Python字符串的常见操作实例小结
2019/04/08 Python
Python字符串的一些操作方法总结
2019/06/10 Python
解决python 读取excel时 日期变成数字并加.0的问题
2019/10/08 Python
Python算法中的时间复杂度问题
2019/11/19 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
C#中的验证控件有几种
2014/03/08 面试题
什么是方法的重载
2013/06/24 面试题
预防艾滋病宣传标语
2014/06/25 职场文书
2015年前台文员工作总结
2015/05/18 职场文书
导游词之秦始皇兵马俑博物馆
2019/09/29 职场文书