我刚接触JQuery并希望使用JQuery Ajax上传文件到服务器,仅使用PUT方法。当我将一些二进制文件(如gif或jpeg)发送到服务器时,上传成功,但是二进制数据的内容已更改(它始终比原始文件大小大)。我尝试更改内容类型或文件类型的结果,但仍然无法解决问题。有人知道如何修复这个问题吗?注意:我不能将二进制文件的内容编码为其他形式,因为我不能接触服务器端的代码。
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
函数在发送请求之前处理数据的方式有关。 - Brendan Berg