我有一个Django模型,该模型中有一个文件上传字段。我希望在单击网页时下载文件,但是,单击按钮时,它只是在浏览器中打开。 w3schools似乎很简单,但我无法正常工作。
HTML页面
{% if obj.document %}
<td><a href="{{ obj.document.url }}" download>File</td>
{% else %}
Models.py
@property
def document_url(self):
if self.document and hasattr(self.document, 'url'):
return self.document.url
如果我将{{ obj.document.url }}
代替File
,则会在AWS上看到文件的路径。
有想法吗?
答案 0 :(得分:0)
在</a>
之后缺少File
,但是如果它仍然不起作用:
根据您要提供的文件类型,似乎没有一种解决方案可以在每种浏览器中使用。
type="application/octet-stream"
放在您的<a>
标记中。您可以尝试在.htaccess
中为您提供的所有文件类型添加以下类型的行:
AddType application/octet-stream .pdf
或
<FilesMatch "\.(?i:pdf)$">
ForceType application/octet-stream
Header set Content-Disposition attachment
</FilesMatch>
自从您提到AWS以来,您似乎可以通过在Amazon S3中为文件设置正确的标头来强制下载这些文件。
Content-Disposition: attachment; filename=FILENAME.EXT
Content-Type: application/octet-stream