6
인 파일을 업로드 할 때 HttpPostedFileBase가 null입니다. Angular를 MVC와 함께 사용합니다. 파일을 업로드 할 때 HttpPostedFileBase
은 null입니다.각도가
HTML :
<input type="file" data-ng-model="fileName" onchange="angular.element(this).scope().fileInputChanged(this)">
각도 :
scope.fileInputChanged = function (element) {
scope.$apply(function (scope) {
console.log('files:', element.files);
_.each(element.files, function (element, index, list) {
scope.files.push(element);
});
});
}
scope.uploadDocuments = function() {
var formData = new FormData();
// add uploaded files to form data object
for(var i in scope.files){
formData.append("uploadedFile", scope.files[i]);
}
// create xml http request object
var httpRequest = new XMLHttpRequest();
httpRequest.upload.addEventListener("progress", uploadProgress, false);
httpRequest.addEventListener("load", uploadComplete, false);
httpRequest.addEventListener("error", uploadFailed, false);
httpRequest.addEventListener("abort", uploadCanceled, false);
httpRequest.open("POST", "/Customer/UploadDocuments");
// make progress bar visible
scope.progressVisible = true;
// send the request to the server with the form data
httpRequest.send(formData);
}
// Private functions
function uploadProgress(event) {
scope.$apply(function() {
if (event.lengthComputable) {
scope.progressValue = Math.round(event.loaded * 100/event.total);
}
else {
scope.progressValue = "Kan progressie niet berekenen";
}
});
}
function uploadComplete(event) {
scope.hideForm(false);
}
function uploadFailed(event) {
alert("Het uploaden van de documenten is mislukt.");
}
function uploadCanceled(event) {
scope.$apply(function() {
scope.progressVisible = false;
});
}
MVC :
여기public void UploadDocuments(HttpPostedFileBase file)
{
}
내 요청 헤더는 다음과 같다 방법 :
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8,nl;q=0.6
Connection:keep-alive
Content-Length:380863
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryc67wmYYq1T5VAMlT
Cookie:ASP.NET_SessionId=rgwgky0zymvb2ppg3jozrn2s; __ngDebug=false; .ASPXAUTH=A54883879090E307D871F8293C805B3B50D1DDFAD1CE5B05D7284426D895370CBBD75D25B7012D384A69CAB265783BDA8F05B1BA02E0121814F45B39E15520EC35408F19DF3345B5DB7F5502886D8696
Host:localhost:15982
Origin:http://localhost:15982
Referer:http://localhost:15982/
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36
그리고 여기 페이로드 :
------WebKitFormBoundaryc67wmYYq1T5VAMlT
Content-Disposition: form-data; name="uploadedFile"; filename="deukjes_deur_2.jpg"
Content-Type: image/jpeg
내가이 작업을하려면 어떻게해야합니까?
나는 방금 알아 냈습니다. 나는이 질문을 올렸을 때 그것을 보았다. 어쨌든 고마워! – Martijn
방금 전이 말을하고 싶었습니다. 그 점에 대해 정말 고마워요! 저는이 문제를 해결하려고하는 사람들의 90 %가 경험하고있는 문제라고 생각합니다. 그래서이 답변이 더 많은 가시성을 갖기를 바랍니다. – Brandon
@Brandon 도움이 된 것을 기쁘게 생각합니다. 나는 오랫동안 직접 고쳐 내려고 노력했기 때문에 지금 처음으로 이것을 알아야합니다. :). (파일뿐만 아니라) 값이 null 인 경우 매우 일반적인 원인입니다. – mattytommo