尝试将图像从Javascript上载到Django时获取HTTP 400
我正在尝试将一个图像从HTML/JS前端上传到Django。获取以下错误-尝试将图像从Javascript上载到Django时获取HTTP 400,javascript,python,ajax,django,Javascript,Python,Ajax,Django,我正在尝试将一个图像从HTML/JS前端上传到Django。获取以下错误- The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS. 这是一个400(错误的请求)我要回到前端 HTML <form method="post" id="imgForm" enctype="multipart/form-data"> {% csrf_token %}
The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS.
这是一个400(错误的请求)
我要回到前端
HTML
<form method="post" id="imgForm" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
<h3> <span class="label label-default">Upload Image</span> </h3>
<div class="input-group">
<span class="input-group-btn">
<span class="btn btn-default btn-file">
Browse… <input type="file" id="imgInp" accept="image/*" image="image" name="imgInp" />
</span>
</span>
<input type="text" class="form-control" readonly>
</div>
<img id='img-upload'/>
<br><br>
<button class="btn btn-primary" type="submit" style="" id="tf_predict">Predict</button>
</div>
</form>
视图.py
def predict(request):
if request.method=='POST':
image_data = request.FILES['image_file']
results = {' {"water": 0.8, "nowater":0.2 } '}
print(results)
return HttpResponse(results)
我的表单只有一个我试图发送的图像输入。任何帮助都将不胜感激 我刚刚遇到了类似的问题。但在我的例子中,我试图使用requests模块发布多部分/表单数据。我的代码如下所示:
url = 'http://your.site.com/api'
the_file_data = {
'my_image': (myimage_file.name, myimage_file.read()),
}
form_dict = {'first_name': 'John', 'last_name': 'Doe'}
response = requests.post(url, files=the_file_data, data=form_dict, auth=(username, password))
上载小尺寸图像不会出现任何问题,但大小为2MB的文件会出现错误:
'The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS.'
在我的例子中,我在settings.py中添加了参数DATA\u UPLOAD\u MAX\u NUMBER\u字段,并将该值设置为20000(两万)。它对我有用。仅供参考,默认值为1000(请参阅)。我刚刚遇到了类似的问题。但在我的例子中,我试图使用requests模块发布多部分/表单数据。我的代码如下所示:
url = 'http://your.site.com/api'
the_file_data = {
'my_image': (myimage_file.name, myimage_file.read()),
}
form_dict = {'first_name': 'John', 'last_name': 'Doe'}
response = requests.post(url, files=the_file_data, data=form_dict, auth=(username, password))
上载小尺寸图像不会出现任何问题,但大小为2MB的文件会出现错误:
'The number of GET/POST parameters exceeded settings.DATA_UPLOAD_MAX_NUMBER_FIELDS.'
在我的例子中,我在settings.py中添加了参数DATA\u UPLOAD\u MAX\u NUMBER\u字段,并将该值设置为20000(两万)。它对我有用。仅供参考,默认值为1000(请参阅)。检查“网络”选项卡以查看实际提交到服务器的内容。这是你期望的吗?另外,您的配置中
settings.DATA\u UPLOAD\u MAX\u NUMBER\u FIELDS
的值是多少?@ADyson我没有设置任何值。检查文档-默认值为1000。是的,我检查了网络选项卡。。。只调用我希望它调用的POST
URL。如果您需要更多详细信息,请告诉我“仅调用我希望它调用的帖子URL”…请求正文和查询字符串中有什么内容?正是你所期望的?我只是在想,不知怎的,它可能因为某种原因发送了额外的数据。值得仔细检查。还有图像文件有多大?@ADyson-图像文件是313KB
<代码>数据:myFormData是我从Javascript发送的表单数据(在JS模块中检查)。查询字符串中也没有任何内容。我现在期待views.py提供一个硬编码的json响应。我只想让views.py读取图像。我会做进一步的处理,一旦这个路障被清除了,编辑就很奇怪了。显然,您可以运行python manage.py diffsettings来检查从默认设置更改的任何设置。如果您还没有这样做的话,可能值得这样做,以仔细检查您的网络选项卡中没有任何内容覆盖“数据”\u UPLOAD\u MAX\u NUMBER\u FIELDScheck,以查看实际提交给服务器的内容。这是你期望的吗?另外,您的配置中settings.DATA\u UPLOAD\u MAX\u NUMBER\u FIELDS
的值是多少?@ADyson我没有设置任何值。检查文档-默认值为1000。是的,我检查了网络选项卡。。。只调用我希望它调用的POST
URL。如果您需要更多详细信息,请告诉我“仅调用我希望它调用的帖子URL”…请求正文和查询字符串中有什么内容?正是你所期望的?我只是在想,不知怎的,它可能因为某种原因发送了额外的数据。值得仔细检查。还有图像文件有多大?@ADyson-图像文件是313KB
<代码>数据:myFormData是我从Javascript发送的表单数据(在JS模块中检查)。查询字符串中也没有任何内容。我现在期待views.py提供一个硬编码的json响应。我只想让views.py读取图像。我会做进一步的处理,一旦这个路障被清除了,编辑就很奇怪了。显然,您可以运行python manage.py diffsettings来检查从默认设置更改的任何设置。如果您还没有这样做的话,可能值得这样做,以仔细检查是否没有任何内容覆盖数据\u上载\u最大值\u编号\u字段