Sono nuovo di JQuery e Desidero utilizzare JQuery Ajax per caricare alcuni file sul server, solo nel metodo PUT. quando invio un file binario (come gif o jpeg) al mio server, caricamento riuscito, ma il contenuto dei dati binari è stato modificato (è sempre più grande della dimensione del file originale). Cerco di modificare il tipo di contenuto o il tipo di risultato del file, ma non funziona ancora. Qualcuno sa come risolvere questo problema?Come inviare dati binari tramite metodo JQuery Ajax PUT
PS: Non riesco a codificare il contenuto del file binario in altro formato, perché non riesco a toccare il codice del server.
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);
Ho riscontrato un problema simile. La mia prima ipotesi è che questo ha a che fare con il modo in cui la funzione 'ajax' elabora i dati prima di inviare la richiesta. –
Indipendentemente dal macchinario jQuery AJAX, notate che dovreste assegnare una funzione a reader.onloadend - non invocare autonomamente quella funzione! – Tom