我是新來的Django,我正在學習如何處理上傳文件Django的,我做了該文件同樣的事情,但我的nginx的只是拋出錯誤,用FileField和nginx上傳文件只是拋出錯誤?
這裏是我的views.py:
@csrf_exempt
def upload_view(request):
if request.method == 'POST':
form = UploadItemForm(request.POST, request.FILES)
if form.is_valid():
return HttpResponse('successfully uploaded')
else:
return HttpResponse('upload failed')
else:
if request.user.is_authenticated():
form = UploadItemForm()
return render(request,
'design/upload.html',
{'form': form,
'username': request.user.username})
else:
return HttpResponse("you have to login")
model.py
class Item(models.Model):
name = models.CharField(max_length = 100)
description = models.TextField(max_length = 1000)
uploadfile = models.FileField()
class UploadItemForm(ModelForm):
class Meta:
model = Item
我的模板:
<form enctype="multipart/form-data" method="post" action="/design/">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="upload" />
</form>
如果我上傳了一些基於文本的文件(大小是非常小的),一切都OK,上傳等格式,或CSV文件較大時,代碼失敗的
form = UploadItemForm(request.POST, request.FILES)
nginx的說
對不起,您正在尋找的頁面當前不可用。請稍後再試 。
我使用nginx + uwsgi + django,所以它與uwsgi和nginx設置有關嗎?
難道他們不具有文檔?我記得默認格式是text/plain,所以你需要爲你的格式定義 – catherine
我沒有找到默認格式的文檔,你能給我提示嗎?我想,如果改變文件格式,將工作,因爲CSV文件也沒.... – CodingCat
有可能在nginx的配置選項來控制它會接受,大概是爲了防止有人上傳大文件作爲部分拒絕POST數據的最大大小服務攻擊。查看nginx的文檔。 – Aya