JQuery를 처음 사용하고 JQuery Ajax를 사용하여 일부 파일을 서버에 업로드하고 싶습니다. PUT 메서드에서만 사용합니다. 내 서버에 바이너리 파일 (예 : gif 또는 jpeg)을 보내면 업로드가 성공하지만 바이너리 데이터의 내용이 변경되었습니다. 항상 원본 파일 크기보다 큽니다. 콘텐츠 형식이나 파일 형식을 변경하려고 시도하지만 여전히 작동하지 않습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니다.JQuery Ajax PUT 메서드를 통해 이진 데이터를 보내는 방법
추 신 : 서버 코드를 건드릴 수 없기 때문에 이진 파일의 내용을 다른 형식으로 인코딩 할 수 없습니다. XMLHttpRequest
를 통해 그들을 보낼 때
var reader = new FileReader();
reader.onloadend = (function(Thefile) {
$.ajax({
url: url,
processData:false,
//contentType:"application/octet-stream; charset=UTF-8",
data: file.result,
type: 'PUT',
success : function(){console.log("OK!");},
error : function(){console.log("Not OK!");}
});
})(file);
reader.readAsBinaryString(file);
비슷한 문제가 발생했습니다. 내 첫 번째 추측은 요청을 보내기 전에'ajax' 함수가 데이터를 처리하는 방식과 관련이 있다는 것입니다. –
jQuery AJAX 기계류에 관계없이 reader.onloadend에 함수를 할당해야 함을 알아 두십시오. 직접 함수를 호출하면 안됩니다! – Tom