Django破坏了上传的wav文件,而mp3很好吗?

时间:2016-08-10 09:56:05

标签: angularjs django file-upload

将wav文件上传到Django时遇到问题。这是我的视图函数,用于处理文件上传:

def handle_upload(self, request, filename, format=None):

    file_obj = request.FILES['file']
    file_obj.name = str(request.user.id) +'_'+ file_obj.name  
    path = default_storage.save('my/path/'+file_obj.name, ContentFile(file_obj.read()))
    file_url = os.path.join(settings.MEDIA_URL, path)
    return Response(file_url,status=status.HTTP_201_CREATED)

以上代码适用于mp3文件,但它会破坏wav文件。它也会破坏图像。

在前端,我正在使用处理上传的角度模块:https://github.com/danialfarid/ng-file-upload

这是前端代码:

HTML:

<input type="file" ngf-select="uploadFiles($file, $invalidFiles)" accept=".mp3, .wav" class="upload" >

JS控制器:

$scope.uploadFiles = function(file, errFiles) {
    $scope.f = file;
    $scope.errFile = errFiles && errFiles[0];

    if (file) {
        api_service.upload_file(file).then(function(data){
            $scope.recording = data.data;
        })
    }
}

JS服务定义:

    'upload_file':function(f){

        return Upload.upload({
            'method':'POST',
            'url': '/api/upload/'+f.name + '',
            'data': {'file': f}

        });
    }

有什么想法吗?

编辑我刚看到我在文件的结尾处附加了大约100个字节。这些行看起来像这样:

------WebKitFormBoundaryDiOIr9GGatp8GFBh
Content-Disposition: form-data; name="file"; filename="hello.mp3"
Content-Type: audio/mp3

------WebKitFormBoundaryDiOIr9GGatp8GFBh--

0 个答案:

没有答案