2010-06-24 141 views
1

我想上傳文本文件到指定的位置,但文件上傳空的,在根(不在我指定的位置)。django上傳文本文件不工作

在車型:

course = models.FileField(help_text=('Upload a course (max %s kilobytes)' %settings.MAX_COURSE_UPLOAD_SIZE),upload_to='cfolder/',blank=True) 

的形式:

def handle_uploaded_file(f): 
    destination = open('Cfolder') 
    for chunk in f.chunks(): 
     destination.write(chunk)  
    destination.close() 

的觀點:

def save_course(request, classname): 
    classroom = Classroom.objects.get(classname = classname) 
    if request.method == 'POST': 
     form = CoursesForm(request.POST, request.FILES) 
     if form.is_valid(): 
      handle_uploaded_file(request.FILES['course']) 
      new_obj = form.save(commit=False) 
      new_obj.creator = request.user 
      new_obj.classroom = classroom 
      new_obj.save() 
      return HttpResponseRedirect('.')  
    else: 
      form = CoursesForm()  
    return render_to_response('courses/new_course.html', { 
      'form': form, 
      }, 
      context_instance=RequestContext(request)) 

我想我的錯誤是在handle_uploaded_file方法。 我應該如何修改它工作正常? 謝謝!

+0

我的問題是:我有MEDIA_ROOT,settings.py中設置好的指向一個目錄,並upload_to到另一個。我的建議是如果你想測試一個簡單的上傳,讓settings.py中的MEDIA_ROOT爲空。 – dana 2010-06-25 10:57:59

回答

2

調用handle_uploaded_file函數的目的是什麼?

默認form.save將文件保存在upload_to目錄

6

您是否記得在您的HTML <form>標記中放入enctype="multipart/form-data"