각도 파일 업로드 파일 이름에 문제가 있습니다.각 FormData 파일 이름 인코딩
예 : 파일 žžž.txt
을 업로드 중입니다. 결과 : žžž.txt
와 관계있는 HTML 양식 부분 :
<form id="fileupload"
action="/filestore/services/process/upload"
method="POST"
enctype="multipart/form-data"
data-ng-app="MyApp"
data-ng-controller="DemoFileUploadController"
data-file-upload="options"
<input type="file" name="files[]" multiple ng-disabled="disabled" file-change="uploadFile($event, files)">
파일 컨트롤러 (CONSOLE.LOG (파일로 인쇄))
$scope.uploadFile = function($event, files) {
var file = files[0];
var data = new FormData();
console.log(file);
console.log(data);
data.append('file-0', file);
$.ajax({
url: uploadUrl,
data: data,
cache: false,
contentType: false,
processData: false,
type: 'post',
success: function(data) {
$scope.reload();
}
});
};
파일 개체 :
lastModified 1467975647307
lastModifiedDate Date {Fri Jul 08 2016 14:00:47 GMT+0300 (FLE Standard Time)}
name "žžž.txt"
size 7
type "text/plain"
포스트 데이터 본문 요청 :
Source
-----------------------------2159279631001
Content-Disposition: form-data; name="file-0"; filename="žžž.txt"
Content-Type: text/plain
-----------------------------2159279631001--
데이터/코드에서 볼 수 있듯이 FormData는 잘못된 파일 이름으로 데이터 객체를 형성하지만 File 객체 자체는 정확합니다 ... 그 이유는 무엇입니까? 어떻게 해결해야합니까?
편집 :
요청 헤더 :
Content-Type multipart/form-data; boundary=---------------------------9275749615024
User-Agent Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
X-Requested-Wit XMLHttpRequest
응답 헤더 :
Content-Length 337
Content-Type application/json;charset=UTF-8
Server Apache-Coyote/1.1
을해야 할뿐만 아니라 올바른 문자 인코딩을 사용해야합니다. –