【发布时间】:2011-03-07 18:58:06
【问题描述】:
我正在尝试将文本文件上传到指定位置,但文件上传的是空文件,位于根目录(不在我指定的位置)。
在模型中:
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 方法中。 我应该如何修改它才能正常工作? 谢谢!
【问题讨论】:
-
我的问题是:我有 MEDIA_ROOT,在 settings.py 中设置为指向一个目录,而 upload_to 指向另一个。如果您想测试简单的上传,我的建议是让 settings.py 中的 MEDIA_ROOT 为空!