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

但 django 系统给我的回应是:

"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。我使用多部分方法从另一个平台上传文件,但使用主干我无法上传文件。

有人可以帮我解决这个问题吗?

谢谢!!

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 回答