Javascript 通过AJAX发送文件;Request.FILES是否为空?
我创建了一个函数,允许我上传一个文件,通过AJAX将其解析为Python函数,然后Python函数处理该文件。我可以只上传一个图像文件,也可以上传一个zip文件或docx文件等 HTML: 当我在本地服务器上尝试时,代码可以工作,但在将其部署到在线服务器后,我在Javascript 通过AJAX发送文件;Request.FILES是否为空?,javascript,python,html,django,ajax,Javascript,Python,Html,Django,Ajax,我创建了一个函数,允许我上传一个文件,通过AJAX将其解析为Python函数,然后Python函数处理该文件。我可以只上传一个图像文件,也可以上传一个zip文件或docx文件等 HTML: 当我在本地服务器上尝试时,代码可以工作,但在将其部署到在线服务器后,我在theReqFile=request.FILES.getlist('theUpload')[0]处得到列表索引超出范围的错误,响应为服务器500 具体来说,当我尝试在本地runserver中上载图像文件和zip文件时,成功了。 在联机服务
theReqFile=request.FILES.getlist('theUpload')[0]处得到列表索引超出范围的错误,响应为服务器500
具体来说,当我尝试在本地runserver中上载图像文件和zip文件时,成功了。
在联机服务器上,上载图像文件成功。当我试图上传一个zip文件时,错误就出现了
有什么建议吗?我对此有点困惑
<input type="file" onchange="ProcessData(this)" id='theUpload' name='theUpload' accept="image/*,application/vnd.ms-excel, application/pdf,application/vnd.ms-word.document.macroEnabled.12,application/vnd.ms-word.template.macroEnabled.12,application/zip " style="display:none;" />
function ProcessData(thisData){
thisCurrentAttachment = thisData;
var formData = new FormData();
var filesizeLimit = 2097152; //2MB * 1024 * 1024
/*
* Check if there is a file selected
*/
if (thisData.files.length==0) {
document.getElementsByName("theUpload")[1].value = "";
return
}
underLimit=(thisData.files[0].size<=2097152);
formData.append('theUpload', thisData.files[0], "Test");
if (underLimit) {
$.ajax({
url: "{% url 'userProcessData' %}",
type: "post",
async: true,
data: formData,
contentType: false,
processData: false,
(....)
def UserProcessData(request):
theReqFile = request.FILES.getlist('theUpload')[0]
(...)
obj={"status": 0, "message": _("Success")}
return JsonResponse(obj)