我之前沒有在這裏發過一個問題,主要是閱讀。Django表單上傳request.files空
我學習Django並獲得文件上傳工作。但是現在我已經打破了它。
當im上傳時request.FILES爲空,但我可以在request.raw_post_data中看到文件名。
這裏是關於HTML
<form enctype="multipart/form-data" method="post" action="">{% csrf_token %}
{{ form.as_p }}
<input type="submit" name="submit" value="Upload Photo" />
</form
形式的代碼
class PhotoUploadForm(forms.Form): title = forms.CharField(max_length=50) description = forms.CharField(required=False,max_length="254") photo = forms.ImageField()
視圖
class PhotoUploadView(FormView):
template_name ="album/photo_upload.html"
form_class = PhotoUploadForm
def get_context_data(self,**kwargs):
context = super(PhotoUploadView,self).get_context_data(**kwargs)
context['user_info'] = self.request.user
if 'upload_form' in kwargs:
context['upload_form'] = kwargs['upload_form']
else:
context['upload_form'] = PhotoUploadForm()
album = get_object_or_404(Album,id=self.kwargs['album_id'])
context['album'] = album
context['form'] = self.form_class
return context
def post(self,*args,**kwargs):
print self.request.FILES
print self.request.raw_post_data
if self.request.method == "POST":
form = PhotoUploadForm(self.request.POST,self.request.FILES)
if form.is_valid():
photo = Photo()
photo.title = form.cleaned_data['title']
photo.summary = form.cleaned_data['description']
photo.album = get_object_or_404(Album,id = kwargs['album_id'])
photo.is_cover_photo = True
path = self.generate_filename(self.request.FILES['photo'].name,self.request.user,kwargs['album_id'])
destination = open(path,"wb+")
for chunk in self.request.FILES['photo'].chunks():
destination.write(chunk)
destination.close()
photo.imagePath = path
photo.save()
return self.render_to_response(self.get_context_data(upload_form=form)
的模板哦謝謝,看看模型,它看起來很漂亮。不重複。我是否應該改變它,然後編輯我的主帖以方便閱讀? – Ludvig
它認爲你應該離開這個職位,所以人們有問題和答案的背景。 –