2012-10-17 60 views
1

我想從Backbone上傳文件到Django文件上傳系統。從骨幹模型發送文件到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上傳鑑於這樣的網址:

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') 

但Django的SISTEM給我的反應是:

"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如何但骨幹我無法上傳文件。

有人可以幫我解決這個問題嗎?

謝謝!

回答

0

我已經編碼了另一種解決方案。我用jquery上傳pluging來上傳文件,並得到響應。

這個插件是: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'); 
},