擅长:python、mysql、java
<p>好主意。但是,我要警告不要使用单一下载方法,因为不能保证他们的第一次下载尝试会成功。也许用一个时间过期方法代替?在</p>
<p>但用Django做这个当然是可能的。以下是基本方法的概述:</p>
<ul>
<li>为这些文件设置一个django url</li>
<li>使用GET参数(该参数是唯一的字符串)来标识要获取的文件。在</li>
<li>保留一个包含<code>FileField</code>的数据库表供文件下载。此表将唯一字符串映射到文件系统上的文件位置。在</li>
<li>要将文件用作下载,请在视图中按如下方式设置响应头:</li>
</ul>
<p>(<code>path</code>是要服务的文件的位置)</p>
<pre><code>with open(path, 'rb') as f:
response = HttpResponse(f.read())
response['Content-Type'] = 'application/octet-stream';
response['Content-Disposition'] = 'attachment; filename="%s"' % 'insert_filename_here'
return response
</code></pre>
<p>因为我们使用这个Django页面来服务文件,所以用户无法找到原始文件的位置。在</p>