2
我希望用戶能夠從我的django網絡應用下載文件。我寫了下面的代碼,但是當我下載一個文件時,這個文件會變成一個錯誤文件。它不會打開,文件的總大小將爲0字節。在Django/Nginx中無法正確下載文件
型號:
class Emov(models.Model):
User=models.ForeignKey(User)
mov_file=models.FileField(upload_to='miiv')
mov_name=models.CharField(max_length=50)
email=models.EmailField() #email of the uploader
download_count=models.PositiveIntegerField(default=0)
#other fields follows
@property
def pretty_name(self):
return "{0}.{1}".format(slugify(self.title),
os.path.splitext(self.mov_name.name)[1])
瀏覽:
def document_view(request,emov_id):
fileload=Emov.objects.get(id=emov_id)
response=HttpResponse()
response["Content-Disposition"]= "attachment; filename={0}".format(fileload.pretty_name)
response['X-Accel-Redirect']="/protected/{0}".format(fileload.mov_name.name)
return response
Nginx的
location /protected/ {
internal;
root /C:/Python27/Scripts/env/Scripts/digi/media/miiv/;
}
我缺少什麼?
感謝您的回覆,如果附件是一個應用程序或其他格式。 Will'response = HttpResponse(fileload.mov_file,content_type ='text/plain')'工作嗎? – picomon
我認爲有時它可能會使用適當的智能。檢查:http://webdesign.about.com/od/multimedia/a/mime-types-by-content-type.htm – McAbra
做出更改後,我能夠下載該文件,這是一個zip文件(468kb )大小,我試圖下載一個PDF文件(1.80MB)我的瀏覽器崩潰,我的電腦掛起。這可能是由於內容類型?如何確定文件的實際內容類型,因爲我不知道用戶將要上傳的文件類型。 – picomon