我是新来的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