2010-07-21 53 views
1

文件上傳有什麼不對的文件uploading.The request.FILES下面的代碼[ '文件']看空和Django

型號:

from django.db import models 
    from django import forms 

    class UploadFileForm(forms.Form): 
     title = forms.CharField(max_length=50) 
     file = forms.FileField(label="Your file") 

瀏覽:

def index(request): 
    if request.method == 'POST': 
    a=request.POST 
    logging.debug(a["title"]) 
    logging.debug(a["file"]) 
    form = UploadFileForm() 
    form = UploadFileForm(request.POST, request.FILES) 

    handle_uploaded_file(request.FILES['file']) 

    if form.is_valid(): 
    handle_uploaded_file(request.FILES['file']) 

    return HttpResponseRedirect('/Files/') 
else: 
    form = UploadFileForm() 
return render_to_response('Files/index.html', {'form': form}) 


def handle_uploaded_file(f): 
logging.debug("here1") 
#destination = open('some/file/name.txt', 'wb+') 
destination = open('/tmp', 'wb+') 
for chunk in f.chunks(): 
    destination.write(chunk) 
destination.close() 

Templates:

 <form name="lang" action="/test/" method="post"> 
     <table> 
    <tr><td> 
    <b> {{ form.file.label_tag }}</b> {{ form.file}} 
    </td></tr> 
    <tr><td> 
    <input type="hidden" value="title" name="title" id="title" /> 
    <input type="submit" value="Save" id="Save"/> 
    </td></tr> 
    </table> 
    </form> 

回答

7

您需要s等enctype屬性窗體上:

<form enctype="multipart/form-data" method="post" action="/foo/"> 

Like they say in the docs.

+0

Shaks,我錯過了part..Thanks它的工作 – Hulk 2010-07-21 10:29:03

+0

@Hulk,如果它的工作,請記住這回答是接受! – 2010-07-21 13:15:52