我使用Django restful api + angularjs。 現在,我追加Django在寧靜的API 使用angularjs上傳文件到服務器上的Web前端,在HTML是:Django restful api無法獲取文件內容
<input type="file" data-upload-file id="uploadInputFile">
的angularjs的代碼是:
omapp.directive("uploadFile",function(httpPostFactory){
return {
restrict:"A",
scope:true,
link:function(scope,element,attr){
element.bind('change',function(){
var formData = new FormData();
formData.append('file', element[0].files[0]);
console.log(formData.get('file'))
httpPostFactory('/api/uploadfile/',formData.get('file'),function (callback) {
console.log(callback);
})
})
}
};
});
omapp.factory('httpPostFactory', function ($http,$cookies) {
return function (file, data, callback) {
var req = {
method:"POST",
url:file,
headers:{
'X-CSRFToken':$cookies.get('csrftoken')
},
data:{file:data}
}
$http(req)
.then(function successcallback(response){callback(response);})
}
});
一切都OK 。但Django的API無法獲取數據 的代碼是:
class UploadFile(APIView):
def post(self,request,format=None):
logger.info("file content");
logger.info(request.data)
return Response("upload done")
我怎樣才能得到的數據?
「request.FILES [」文件']「,抓到一個錯誤:angular.js:14727可能未處理的拒絕... –
未處理的拒絕,它可能是500個關鍵錯誤.check您的瀏覽器控制檯,您的請求數據包含文件內容, – Robert
我收到一個新錯誤:MultiValueDictKeyError at/api/uploadfile/ 「'file'」 –