我在AngularJs中有一個帶有一些欄位的表單。我想在表單中增加一個欄位來上傳檔案,目前我是以json payload的形式向后臺發送資料,如何才能上傳檔案,這是我的問題,我有一個想法,就是使用查詢字串。 有誰能告訴我如何做這件事。 我上傳文本欄位的代碼 -
let settings = {
"url"。"https://someurl",
"method": "POST",
"timeout": 0,
"headers": {
"Content-Type": "application/json"。
},
"data": JSON.stringify(data)
};
$.ajax(settings).done(function (response) {
toastr["success"]("表單成功提交。", "成功!") 。
setTimeout(function () {
window.location.href = "success.php" ;
}, 1500)。)
}).fail(function(err) {
toastr["error"]("無法提交您的表單。", "失敗!")。
}
};
我在前臺使用AngularJs。
uj5u.com熱心網友回復:
兩種方法:
1 - 使用Json。你可以將檔案轉換為base64,然后像簡單的JSON一樣推送給服務器 影像轉換為base64
2 - 使用FormData:改變內容型別為。'multipart/form-data 并在正文中使用formData,像這樣 如何使用 FormData 進行 AJAX 檔案上傳?
uj5u.com熱心網友回復:
試試這個 :
<form name="myForm" ng-submit="_post(file,data)">
< input ng-model='file' type="file"/>
<input ng-model='data'。 name' type="text"/>
<input ng-model='data'。 age' type="number"/>
< input type="submit" value='submit'/gt;
</form>
var _post = function (file, jsonData) {
$http({
url: 你的網址。
method: "POST"。
headers: { 'Content-Type': undefined },
transformRequest: function (data) {
var formData = new FormData() 。
formData.append("model", angular.toJson(data.model) 。)
formData.append("file", data.files) 。
return formData。
},
data: { model: jsonData, files: file }.
}).then(function(response) {
;
});
作業中fiddle
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/307471.html
標籤:
