Django 之 下载文件
2024-09-22 01:16:06
法I:
views.py
#encoding:utf-8
import os from django.core.servers.basehttp import FileWrapper
from django.http import HttpResponse path = '/tmp/'
def downloader(request):
filename_tmp = 'test.tmp' # test.tmp为将要被下载的文件名
filename = os.path.join(path,filename_tmp)
wrapper = FileWrapper(file(filename))
response = HttpResponse(wrapper, content_type='text/plain')
response['Content-Length'] = os.path.getsize(filename)
response['Content-Disposition'] = 'attachment; filename="somefilename.csv"' # somefilename.csv为下载后的文件名
return response
法II:
test.html
<a href="download/file/">下载</a>
urls.py
url(r'^download/file/$', 'xxx.views.download'), # xxx为项目名
xxx中的views.py
import os
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required @login_required
def download(request):
response = HttpResponse()
response['Content-Disposition'] = 'attachment;filename=downfile.txt' # downfile.txt为下载后的文件名
full_path = os.path.join('/tmp', 'filename.txt') # filename.txt为将要被下载的文件名
if os.path.exists(full_path):
response['Content-Length'] = os.path.getsize(full_path) # 可不加
content = open(full_path, 'rb').read()
response.write(content)
return response
else:
return HttpResponse(u'文件未找到')
法III:
test.html
<a href="download/downfile.txt">下载</a>
urls.py
1 url(r'^download/(?P.*)$', 'django.views.static.serve',{'document_root':文件路径}),
最新文章
- 设计模式之美:Bridge(桥接)
- 怎么在手机浏览器上访问电脑本地的文件,局域网内,自建WiFi也可以
- nginx配置 首页不显示 index.html首页是显示域名
- Maven 仓库
- android fragment嵌套fragment出现的问题:no activity
- linux学习记录(第六章、Linux 的文件权限与目录配置)
- hdu5032 Always Cook Mushroom
- UVA - 1103Ancient Messages(dfs)
- 数据切分——Mysql分区表的建立及性能分析
- 破译情报-NOIP2016提高组复赛模拟试题
- VIP站长大会(北京站)常见问题解答
- ICC_lab总结——ICC_lab5:布线&;&;数字集成电路物理设计学习总结——布线
- WordCount测试项目小结
- SpringMVC(十六) 处理模型数据之SessionAttributes
- js和jquery获取当前元素的内容
- Android之扫描二维码和根据输入信息生成名片二维码
- 系列文章--Enterprise Library文章总结
- Centos配置深度学习开发环境
- Java垃圾收集算法
- php 自动补位