将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--