[英]How to upload a file with django (python) and s3?
我正在尋找一種將文件上傳到s3的方法。 我正在使用django。 我目前正在使用amazon的python庫上傳以下代碼:
視圖:
def submitpicture(request):
fuser = request.session["login"]
copied_data = request.POST.copy()
copied_data.update(request.FILES)
content_type = copied_data['file'].get('content-type')
ffile = copied_data['file']['content']
key = '%s-%s' % (fuser, ''.join(copied_data['file']['filename'].split(' ')))
site_s3.save_s3_data(key, ffile, content_type)
模板:
<form action="/submitpicture/" method="POST">
<input type="file" id="file" name="file" />
<input type="submit" value="submit" />
</form>
但是,當我實際嘗試運行它時,我收到以下錯誤:
"Key 'file' not found in <QueryDict: {}>"
#MultiValueDictKeyError
我真的不明白我做錯了什么。 有人能指出我正確的方向嗎?
編輯:為了防止有人想知道,我計划在實際上傳工作后添加一些驗證。
你必須為FORM元素提供enctype屬性(我之前已經被它咬過)。 例如,您的FORM標記應如下所示:
<form action="/submitpicture/" method="POST" enctype="multipart/form-data" >
沒有enctype,你會發現自己有一個空的請求.FILES。
我不會手動執行此操作,而是查看David Larlet為Django編寫的存儲后端django- storages
添加enctype =“multipart / form-data”似乎值得在django docs的“文件上傳”部分中提及( http://docs.djangoproject.com/en/dev/topics/http/file-uploads/ )。 思考?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.