0

ファイルを Dropbox API に送信する Django 用のマルチアップローダーを作成しようとしています。私が今抱えている問題は、画像以外のファイルに対して正常に機能することです。ファイルはドロップボックス アカウントにアップロードされますが、画像を開くことができません。それらは破損しているようです。

これは私が使用しているコードです

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

        user_profile = UserProfile.objects.get(user = request.user)
        sess = session.DropboxSession(settings.DROPBOX_AUTH_KEY, settings.DROPBOX_AUTH_SECRET, access_type=settings.DROPBOX_ACCESS_TYPE)
        sess.set_token(user_profile.dropbox_profile.access_token['key'], user_profile.dropbox_profile.access_token['secret'])
        drop_client = client.DropboxClient(sess)

        files = request.FILES.getlist(u'files[]')
        for file in files:
           folder = Project.objects.get(id=request.POST['project_id']).title
           result_db = drop_client.put_file(settings.APP_NAME + '/' + folder + '/' + file.name, file.file)

        destination = open(file.name , 'wb+')
        for chunk in file.chunks():
            destination.write(chunk)
        destination.close()

        #generating json response array
        result = []
        result.append({"files": [
          {
            "name": result_db['path'][result_db['path'].rfind('/') + 1:],
            "size": result_db['bytes'],
            "mime": result_db['mime_type']
          }
        ]})
        response_data = simplejson.dumps(result)

        #checking for json data type
        if "application/json" in request.META['HTTP_ACCEPT_ENCODING']:
            mimetype = 'application/json'
        else:
            mimetype = 'text/plain'
        return HttpResponse(response_data, mimetype=mimetype)
    else: #GET
        return HttpResponse('Only POST accepted')

何か案が?

4

1 に答える 1

0

私は Django の専門家ではありませんが、SO question Django multiple files in one input can't be read by serverrequest.FILES.getList(<name>)は、そこにあるファイルを使用して反復処理する必要があることを示唆しています。

于 2013-11-07T15:59:33.837 に答える