我想在我的项目目录中创建一个PDF文件,使其可以下载,而不是在用户单击链接时在浏览器中打开.
我按照这个问题使用Django生成文件下载
但是我收到了错误:
Exception Type: SyntaxError
Exception Value: can't assign to literal (views.py, line 119)
Exception Location: /usr/local/lib/python2.7/dist-packages/django/utils/importlib.py in import_module, line 35
Run Code Online (Sandbox Code Playgroud)
我创建了一个下载链接:
<a href="/files/pdf/resume.pdf" target="_blank" class="btn btn-success btn-download" id="download" >Download PDF</a>
Run Code Online (Sandbox Code Playgroud)
urls.py:
url(r'^files/pdf/(?P<filename>\{w{40})/$', 'github.views.pdf_download'),
Run Code Online (Sandbox Code Playgroud)
views.py:
def pdf_download(request, filename):
path = os.expanduser('~/files/pdf/')
f = open(path+filename, "r")
response = HttpResponse(FileWrapper(f), content_type='application/pdf')
response = ['Content-Disposition'] = 'attachment; filename=resume.pdf'
f.close()
return response
Run Code Online (Sandbox Code Playgroud)
错误行是:
response = ['Content-Disposition'] = 'attachment; filename=resume.pdf'
Run Code Online (Sandbox Code Playgroud)
我该如何让它可以下载?
谢谢!
UPDATE
它适用于Firefox,但不适用于Chrome v21.0.
使用以下代码,它应该下载文件而不是在新页面中打开它
def pdf_download(request, filename):
path = os.expanduser('~/files/pdf/')
wrapper = FileWrapper(file(filename,'rb'))
response = HttpResponse(wrapper, content_type=mimetypes.guess_type(filename)[0])
response['Content-Length'] = os.path.getsize(filename)
response['Content-Disposition'] = "attachment; filename=" + filename
return response
Run Code Online (Sandbox Code Playgroud)
你=在这一行中有一个额外的,这使得语法无效.它应该是
response['Content-Disposition'] = 'attachment; filename=resume.pdf'
Run Code Online (Sandbox Code Playgroud)
(注意,有两个=不一定使它无效:foo = bar = 'hello'完全有效,但在这种情况下,左侧和中间项都是名称.在您的版本中,中间项是文字,无法分配. )
| 归档时间: |
|
| 查看次数: |
7806 次 |
| 最近记录: |