이 방법처럼 그것을 시도하고 당신이 잘 될 것입니다 :
$scope.uploadMultipart = function(file, jsonObject, uploadUrl){
var formData = new FormData();
formData.append('json',JSON.stringify(jsonObject));
formData.append('file', file);
return $http({
url: uploadUrl,
method: 'POST',
data: formData,
headers: { 'Content-Type': undefined},
transformRequest: angular.identity
});
};
나는 그것을 추천하지만 JSON 개체의 일부로 파일을 추가 할 수있는 방법을 먹으 렴 않을 것이다 . 그렇게하면 콘텐츠 유형 application/json
을 게시 할 수 있습니다.
$scope.uploadHack = function(file, jsonObject, uploadUrl){
var aReader = new FileReader();
aReader.readAsText(file, "UTF-8");
aReader.onload = function (evt) {
//append file to json as raw data
jsonObject.file = {
content: aReader.result,
name: file.name,
size: file.size
};
$http({
url: uploadUrl,
method: 'POST',
data: jsonObject,
headers: { 'Content-Type': 'application/json'},
transformRequest: angular.identity
});
}
};
출처
2017-02-20 10:08:11
lin
예. 여기에서는 문자열 화 된 json을 multipart에 추가합니다. 그 반대의 방법이 있습니까? JSON의 멀티 파트? –
@AmirSuhail 왜 이것을하고 싶습니까? 이러한 종류의 멀티 파트 구조를 사용하면 백엔드 처리 (JSON.parse)가 훨씬 쉽습니다. https://en.wikipedia.org/wiki/KISS_principle – lin
예. 하지만 백엔드는 여러 부분으로 나뉘어 서비스를 요청해야합니다. 위의 작업을 수행하면 데이터가 요청 본문이 아닌 다중 부분 매개 변수로 전달됩니다. 요청 본문에서 데이터를 가져 오려면 해당 작업을 수행해야합니다. –