Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中的Ajax POST请求失败_Python_Ajax_Django_File Upload - Fatal编程技术网

Python Django中的Ajax POST请求失败

Python Django中的Ajax POST请求失败,python,ajax,django,file-upload,Python,Ajax,Django,File Upload,我正在发出一个Ajax POST请求,但在我看来它没有被识别 views.py中的代码: @csrf_exempt def upload(request): if request.method == 'POST': form = UploadFileForm(request.POST, request.FILES) if form.is_valid(): #handle_uploaded_file(request.FILES['file']

我正在发出一个Ajax POST请求,但在我看来它没有被识别

views.py中的代码:

@csrf_exempt
def upload(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
        #handle_uploaded_file(request.FILES['file'])
        f = request.FILES['file']
            global globalVarForToTrackUpload
            global globalFileSizeVariable
        globalFileSizeVariable = f.size
        filename = "/static/Data/" + f.name
        destination = open(filename, 'wb+')
        for chunk in f.chunks():
        destination.write(chunk)
        globalVarForToTrackUpload += len(chunk)
        destination.close()
            #return render_to_response('uploadsuccess.html')
        allValues = str(globalVarForToTrackUpload) + " : " + str(globalFileSizeVariable)
        return HttpResponse(allValues)
    else:
        form = UploadFileForm()
    return render_to_response('upload.html', {'form': form})
我的中间件设置是:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.csrf.CsrfResponseMiddleware',
)
我的javascript函数是:

function submitForm()

{

    //document.forms["myForm"].submit();

    xhrPost = getXhrObject();
    var arrFiles = document.getElementById('id_file');
    var fileToUpload = arrFiles.files[0];
    xhrPost.onreadystatechange = function() {
        if(xhrPost.readyState == 4 && xhrPost.status == 200)
            document.getElementById("upload-progress-bar").innerHTML = xhrPost.responseText;
        else
            document.getElementById("upload-progress-bar").innerHTML = "processing upload...";
    }

    xhrPost.open("POST","/upload.psp/",true);

    var boundary = "AJAX--------------" + (new Date).getTime();
    var contentType = "multipart/form-data; boundary=" + boundary;
        xhrPost.setRequestHeader("Content-Type", contentType);
    xhrPost.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));

    xhrPost.send(fileToUpload);

    return false;

}
谁能告诉我我错过了什么?为什么在views.py的“upload”函数中请求没有被重新编码为“POST”


提前感谢。

在视图中使用request.raw\u post\u数据。不知怎的,是这样的:

if request.is_ajax():
     source = request.raw_post_data
     #Save or/and modify your file
else:
    #As usual
顺便说一下,我不知道如何按块获取文件。也许有人知道