Apache Cordova文件传输到Django后端无法识别表单数据

问题描述 投票:0回答:1

我正在尝试使用apache cordova文件传输插件将图片发送到基于django的后端。 当我通过后端的文件传输插件提交图片时,它无法识别任何参数。

function uploadPhoto(imageURI) {
    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
    options.mimeType = "image/jpeg";
    var params = {};
    params.value1 = "test";
    params.value2 = "param";
    options.params = params;
    var ft = new FileTransfer();
    ft.upload(imageURI, encodeURI("http://127.0.0.1:8000/declare/"), win, fail, options);   
}

reqeust.FILES,request.POST,request.GET都是空字典。 当我将URL提交到hookbin时,它似乎可以识别所有内容。 为什么django为什么将request.FILES等保持为空?

@csrf_exempt
def declare(request):
    me = User.objects.get(username='test')
    response = JsonResponse({'success': "ok"})
    response["Access-Control-Allow-Origin"] = "*"
    response["Access-Control-Allow-Methods"] = "POST, GET, OPTIONS"
    response["Access-Control-Max-Age"] = "1000"
    response["Access-Control-Allow-Headers"] = "*"
    return response

在此处输入图片说明

python django cordova phonegap
1个回答
0
投票

看起来cordova插件默认情况下使用分块传输。

chunkedMode: Whether to upload the data in chunked streaming mode. Defaults to true. (Boolean)

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/

您可能要禁用它或使用库来帮助在服务器端对上传进行分块,例如https://github.com/juliomalegria/django-chunked-upload

© www.soinside.com 2019 - 2024. All rights reserved.