Jestem nowy w JQuery i Chcę użyć Ajax JQuery do przesyłania niektórych plików na serwer, tylko w metodzie PUT. kiedy wysyłam plik binarny (taki jak gif lub jpeg) do mojego serwera, upload succeed, ale zawartość danych binarnych została zmieniona (zawsze jest większa niż oryginalny rozmiar pliku). Próbuję zmienić typ zawartości lub typ pliku, ale nadal nie działa. Ktoś wie, jak to naprawić?Jak wysłać dane binarne przez JQuery Metoda Ajax PUT
PS: Nie mogę zakodować zawartości pliku binarnego w innej formie, ponieważ nie mogę dotknąć kodu serwera.
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);
Znam podobny problem. Moim pierwszym przypuszczeniem jest to, że ma to związek ze sposobem, w jaki funkcja 'ajax' przetwarza dane przed wysłaniem żądania. –
Bez względu na maszynę jQuery AJAX zauważ, że powinieneś przypisać funkcję do reader.onloadend - nie wywołaj tej funkcji samodzielnie! – Tom