簡體   English   中英

如何使用django(python)和s3上傳文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM