Tôi đang làm việc trên một dự án cần tải lên tệp lớn lên phía máy chủ. Tôi quyết định sử dụng HTML5 FileReader và jQuery để tải tệp lên theo khối (ArrayBuffer).Gửi ArrayBuffer với chuỗi khác trong một cuộc gọi Ajax qua jQuery
Tôi đã hoàn tất thành công tác vụ này bằng cách chuyển các đoạn thành chuỗi base64, gửi tới máy chủ phụ trợ thông qua jQuery.post với tham số dữ liệu ở định dạng JSON.
Ví dụ
$.ajax({
url: "/Home/Upload",
type: "POST",
data: {
name: block.name,
index: block.index,
base64: base64
},
processData: true
});
Nhưng tôi muốn để tối ưu hóa mã này kể từ base64 là quá lớn để chuyển đổi. Tôi muốn biết nếu tôi có thể gửi ArrayBuffer trực tiếp thông qua $.ajax
.
Tôi biết rằng nếu tôi đặt processData: false
và chỉ cần đặt ArrayBuffer vào tham số dữ liệu, nó có thể được gửi đến phía máy chủ của tôi là Request.InputStream
. Nhưng theo cách này, tôi không thể đính kèm dữ liệu khác như name
và index
.
Tôi muốn biết tôi có thể gửi ArrayBuffer thô (hoặc blob, nhị phân) một mình với dữ liệu khác của tôi (tên, chỉ mục) trong một cuộc gọi ajax hay không.