Adr*_*son 4 python nginx pyramid
我希望用户能够点击这样的链接:
<a href="/download?file=123">download</a>
有一个金字塔1.2.7应用程序处理这样的视图
@view_config(route_name='download')
def download(request):
file_id = request.GET['file']
filename = get_filename(file_id)
headers = request.response.headers
headers['Content-Description'] = 'File Transfer'
headers['Content-Type'] = 'application/force-download'
headers['Accept-Ranges'] = 'bytes'
headers['X-Accel-Redirect'] = ("/path/" + filename + ".pdf")
return request.response
Run Code Online (Sandbox Code Playgroud)
我的nginx配置看起来像这样
location /path/ {
internal;
root /opt/tmp;
}
Run Code Online (Sandbox Code Playgroud)
这一切都有效,但浏览器显示pdf已下载,而不是浏览器显示一堆PDF垃圾.
如何设置我的金字塔视图以使浏览器做正确的事情?
如果要指示Web浏览器应下载资源而不是显示它,请尝试使用RFC 6266中所述的Content-Disposition标头.例如,以下响应标头将告诉浏览器下载文件:
Content-Disposition: attachment
Run Code Online (Sandbox Code Playgroud)
您还可以通过此标头为下载的文件指定文件名(如果它与URL中的最后一个路径组件不同):
Content-Disposition: attachment; filename=foo.pdf
Run Code Online (Sandbox Code Playgroud)
查看Nginx文档,此响应标头应与X-Accel-Redirect您正在使用的功能一起正常工作.
| 归档时间: |
|
| 查看次数: |
2123 次 |
| 最近记录: |