2017-05-13 4 views
0

apache cordovaファイル転送プラグインを使用して写真をdjangoベースのバックエンドに送信しようとしています。バックエンドのファイル転送プラグイン経由で画像を送信すると、パラメータが認識されません。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を提出すると、それはすべてを認識するようです。 djangoがリクエストを保持する理由は何でしょうか?ファイルなどは空ですか?

@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 

enter image description here

+0

などのサーバー側のアップロードを支援するためのライブラリを使用したい場合があり

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/

正直なところ、私は問題が何であったか、本当にわからないと述べました。翌日、コードは事実上変わらず、作業を開始しました。私は多分ブラウザのキャッシュやコンパイラと関係があると思っています。 –

答えて

0

コルドバのプラグインは、デフォルトではチャンク転送を使用するように見えます。あなたはそれを無効にしたり、チャンクにhttps://github.com/juliomalegria/django-chunked-upload

+0

これは調べるのに良いポインタですが、悲しいことに、私がフィドラーでhttpポストを調べたところ、チャンクモードがアクティブではありませんでした。実際に何もせずに - 私は仕事のためのコードを持っている、なぜそれが動作する、私を打つ。 –

+0

興味深い...これ以外の何かが私がなぜそれがうまくいかない理由であるとは思わなかったので – Colwin

関連する問題