0
所以我們得到的前端有一個文件(圖像文件),像這樣:從瀏覽器到JFrog/Artifactory的服務器POST二進制數據,而無需使用表單數據
// HTML
<input type="file" ng-change="onFileChange">
// javascript
$scope.onFileChange = function (e) {
e.preventDefault();
let file = e.target.files[0];
// I presume this is just a binary file
// I want to HTTP Post this file to a server
// without using form-data
};
我想知道的是 - 有沒有辦法將這個文件發佈到服務器,而不包括該文件作爲form-data?問題是我發送HTTP POST請求的服務器,在收到請求時並不真正知道如何存儲表單數據。
我相信這是正確的做法,但我不確定。
fetch('www.example.net', { // Your POST endpoint
method: 'POST',
headers: {
"Content-Type": "image/jpeg"
},
body: e.target.files[0] // the file
})
.then(
response => response.json() // if the response is a JSON object
)
爲什麼你不確定你的方法是否是「正確的做法」?是的,您應該可以將'Blob'或'File'實例POST到服務器 – guest271314
@AlexanderMills:但是,當服務器收到帶有image/jpeg類型的POST請求時必須知道該怎麼做。你使用什麼服務器? –
我們需要HTTP POST/PUT到一個JFrog Artifactory服務器 - 我最終使用我們的服務器作爲Artifactory服務器的代理。我將添加一個答案,顯示我們是如何做到的。也許有人可以看我的答案,並顯示如何可以避免代理。 –