我正在開發一個使用angular,python和Flask的web應用程序。 在我的應用程序中有一個表單,用戶需要輸入一些數據並上傳他的照片。 我想用角度來實現文件上傳到服務器。 我看到我需要使用FormData()並使用「watch」將數據從HTML綁定到角度。 javascript部分很清晰。 我不明白我如何從Python端獲取數據。angularjs + python(Flask)文件上傳到服務器
這是我的HTML -
<form enctype="multipart/form-data" ng-submit="submitGuideDetailsForm()">
<div class="form-group">
<label for="usr">Add your photo:</label>
<input type='file' class="form-control" name='file' onchange="angular.element(this).scope().uploadFile(this.files)">
</div>
</form>
這是我的角度 -
$scope.uploadFile = function(files) {
$scope.file = new FormData();
$scope.file.append("file", files[0]);
};
$scope.submitGuideDetailsForm= function() {
$http.post('/uploadFile', $scope.file, {
headers: {'Content-Type': undefined },
transformRequest: angular.identity
}).success(function(results)
{
$log.log('success load file')
}).error(function(error)
{
$log.log('error load file!!!!!')
$log.log(error);
});
};
我想在服務器端的文件,使用python和瓶 -
@app.route('/uploadFile', methods=['POST'])
def uploadFile():
json_data = request.json
print(json_data)
status = 'success'
return jsonify({'result': status})
我不知道如何從'request'對象獲取數據。 request.json
不起作用。
請指教我,我做錯了什麼。 如何從「請求」對象獲取數據? 我是否需要將數據編碼到文件中? 如何將數據發送回客戶端?我需要將其編碼嗎? 我沒有找到一個完整的例子,使用angular和python/flask將文件上傳到服務器,保存並將其下載到客戶端。 非常感謝, 迪娜
得到的文件名嘗試'request.file'或'request.files' – reptilicus