Pracuję nad projektem, który należy przesłać dużym plikiem po stronie serwera. Postanowiłem użyć HTML5 FileReader i jQuery, aby przesłać plik w porcjach (ArrayBuffer).Wysyłaj ArrayBuffer z innym ciągiem w jednym wywołaniu Ajax za pośrednictwem jQuery
Pomyślnie zakończyłem to zadanie, konwertując porcje do łańcucha base64, wysyłając do serwera zaplecza za pośrednictwem jQuery.post z parametrem danych w formacie JSON.
Na przykład
$.ajax({
url: "/Home/Upload",
type: "POST",
data: {
name: block.name,
index: block.index,
base64: base64
},
processData: true
});
Ale chciałbym, aby zoptymalizować ten kod od base64 jest zbyt duża, aby przekształcić. Chciałbym wiedzieć, czy mogę wysłać ArrayBuffer bezpośrednio przez $.ajax
.
Wiem, że jeśli ustawię processData: false
i po prostu wprowadzę ArrayBuffer do parametru danych, może on zostać wysłany na moją stronę serwera jako Request.InputStream
. Ale w ten sposób nie mogę dołączyć innych danych, takich jak name
i index
.
Chciałbym wiedzieć, czy mogę wysłać surowy ArrayBuffer (lub blob, binarny) sam z innymi danymi (nazwa, indeks) w jednym wywołaniu ajax.