1

Backbone から Django ファイル アップロード システムにファイルをアップロードしたい。

まず、https://stackoverflow.com/a/10916733/1590377の説明に従いました。私は FileModel を実行しましたが、上記の指示により、次の情報を持つモデルがあります。

attributes: Object
    data: "data:image/png;base64,iVBORw ..."
    file: "image2012-06-12 13:36:45.png"

今度は、次のように django でアップロード ビューがある URL にモデルを保存します。

def upload_file_64(request):
   if request.method == 'POST':

       file = cStringIO.StringIO(base64.b64decode(request.POST['data']))
       #method to save the file
       response_data={"result":"ok"}
       return HttpResponse(simplejson.dumps(response_data), mimetype='application/json')
else:
    response_data={"success": "No a post request"}
    return HttpResponse(simplejson.dumps(response_data), mimetype='application/json')

しかし、ジャンゴシステムが私に与える応答は次のとおりです。

"MultiValueDictKeyError at /api/upload64/↵'Key \'data\' not found in <QueryDict: {u\'base64,iVBORw0KG....

POST http リクエストは次のとおりです。

 POST:
 base64,iVBORw0KG ..."} = u''
 {"file":"Captura de pantalla de 2012-06-12 13:36:45.png","data":"data:image/png = u''

ファイルをdjangoにアップロードできるように、これを修正するにはどうすればよいですか。マルチパート方式を使用して別のプラットフォームから Android の方法でファイルをアップロードしますが、バックボーンではファイルをアップロードできません。

誰かがこの問題を手伝ってくれますか?

ありがとう!!

4

1 に答える 1

0

別のソリューションをコーディングしました。jquery アップロード プラグインを使用してファイルをアップロードし、応答を取得しました。

プラグインはhttp://lagoscript.org/jquery/upload/demo?locale=enで、バックボーン ビューで使用したコードは次のとおりです。

events : {
    'change #file1' : 'upload'
},
upload : function(){

    $('#file1').upload('http://192.168.0.195/api/upload/', function(res) {
            console.log(res)
            //now I use the res to create a model :)
        }, 'html');
},
于 2012-10-17T15:39:07.080 に答える