流程看起来像这样:
我遇到了第5点。我创建了另一个绑定到“下载”按钮的ajax(以避免重新加载页面)。它正确地要求服务器查找文件,创建一个django File对象:pdf_file = File(open(file_path, 'rb'))
并创建一个HttpResponse
文件,content_type='application/pdf'
或'application/download'
。
response['Content-Disposition']
为attachment
。
然后ajax返回响应 - 只有它没有。服务器不会引发错误,但会调用ajax错误函数。
我读过用ajax下载是不可能的。你能帮助我一点点吗?如果上面的代码片段不清楚,我将提供更多代码。 Python 3.5,Django 1.10
答案 0 :(得分:3)
喜欢
window.location.href = "/url/to/downloadfile/"
发布表单成功后,在javascript
中。 OR
#html
<button onclick="myfiledownload()">Download</download>
#javascript
function myfiledownload(){
window.location.href = "/url/to/downloadfile/"
}
答案 1 :(得分:1)
而不是使用ajax下载文件将按钮绑定到可以托管文件的下载链接
https://www.mywebsite/download/?fileid=3247023
您至少应该在媒体根目录中分隔您的文件 注意:在生产中,您必须使用cdn来托管静态文件