Python 上传带有FileField和nginx的文件只是抛出错误?
我是Django的新手,我正在学习如何使用Django处理上传文件,我对文档做了同样的事情,但我的nginx只是抛出错误 以下是我的视图.py:Python 上传带有FileField和nginx的文件只是抛出错误?,python,django,nginx,uwsgi,Python,Django,Nginx,Uwsgi,我是Django的新手,我正在学习如何使用Django处理上传文件,我对文档做了同样的事情,但我的nginx只是抛出错误 以下是我的视图.py: @csrf_exempt def upload_view(request): if request.method == 'POST': form = UploadItemForm(request.POST, request.FILES) if form.is_valid(): return
@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>
nginx说
抱歉,您正在查找的页面当前不可用。请
请稍后再试
我使用nginx+uwsgi+django,那么它与uwsgi和nginx设置有关吗?啊,我解决了它。不知什么原因。看起来,当请求大小超过某个阈值时,nginx会将数据放在client\u body\u temp/目录中,出于某种原因(我不知道),我的设置中的这个目录是root只读的????更改权限,然后一切正常有关其他信息:
client_max_body_size 4M; //4mb
default_type text/plain; //file format
以下是功能列表:
也请阅读本论坛:他们没有文档吗?我记得默认格式是text/plain,所以你需要为你的格式定义它。我没有找到默认格式的文档,你能给我一些提示吗?我怀疑更改格式是否可行,因为csv文件也失败了……nginx中可能有一个配置选项来控制它将接受的POST数据的最大大小,大概是为了防止人们上传大文件作为拒绝服务攻击的一部分。检查文件中的nginx。啊,我解决了。不知什么原因。看起来,当请求大小超过某个阈值时,nginx会将数据放在client\u body\u temp/目录中,出于某种原因(我不知道),我的设置中的这个目录是root只读的????更改权限,然后一切正常fine@Aya我怀疑在一开始,但即使我将其设置为100MB,也没有任何效果…所以只需查看uwsgi和nginx的错误日志。最后在nginx中找到密钥。。。
client_max_body_size 4M; //4mb
default_type text/plain; //file format