2008-11-26 15 views
11

Bir dosyayı s3'e yüklemenin bir yolunu arıyorum. Ben django kullanıyorum. Şu anda aşağıdaki kodu ile birlikte yüklemek için amazon piton kitaplığı kullanıyorum:Django (python) ve s3 ile dosya nasıl yüklenir?

Görünüm:

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) 

Şablon

: Aslında ben almak çalıştırmayı denediğinizde Ancak

<form action="/submitpicture/" method="POST"> 
    <input type="file" id="file" name="file" /> 
    <input type="submit" value="submit" /> 
</form> 

aşağıdaki Hata:

"Key 'file' not found in <QueryDict: {}>" 
#MultiValueDictKeyError 

Gerçekten neyi yanlış yaptığımı anlamıyorum. Birisi bana doğru yönde işaret edebilir mi?

Düzenleme: Birisi harikalarsa, gerçek yükleme çalışmasını aldıktan sonra bir miktar doğrulama yapmayı planlıyorum.

cevap

18

FORM öğesine enctype özniteliğini vermeniz gerekir (bundan önce ısırılmıştım). enctype olmadan

<form action="/submitpicture/" method="POST" enctype="multipart/form-data" > 

, boş request.FILES ile bulacaksınız: Örneğin, FORM etiketi gibi görünmelidir. Bunun yerine elle David Larlet Django için yazmıştır depolama arka uç bir göz alacağını Bunu yapmanın

+0

Doh! Bunu özlediğime inanamıyorum. Teşekkürler! – rksprst

İlgili konular