Tôi đang triển khai một số tính năng tải tệp lên thông qua yêu cầu ajax. Tôi muốn có thể gửi nhiều tập tin trong một cuộc gọi ajax, vì vậy tôi quyết định sử dụng FormData.Chrome WebKitBlobBuilder không thêm dữ liệu
Tôi đã cố thêm chuỗi dữ liệu nhị phân của mình trực tiếp vào FormData (và nó hoạt động), nhưng Nội dung-Bố trí không có thuộc tính tên tệp: Nội dung-Bố trí: biểu mẫu-dữ liệu; name = "file1"
w3c nói rằng tôi cần phải nối thêm một đối tượng blob đến formdata có thuộc tính đó (hoặc để có thể thiết lập nó với thuộc tính thứ 3 của FormData.append())
tôi viết đoạn mã sau:
function uploadAsBinary() {
var xhr = new XMLHttpRequest();
var fd = new FormData();
window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
var bb = new window.BlobBuilder();
bb.append("this is my binary content");
var blob = bb.getBlob("text/plain");
fd.append("file1", blob, "file1");
xhr.open("POST", "/mb/0/", false);
xhr.send(fd);
}
nó hoạt động hoàn toàn tốt đẹp với firefox, nhưng với google chrome (v16 và v17), yêu cầu tải trọng là một formdata không có nội dung trong đó:
------WebKitFormBoundaryVkgESMAGtmPMlPZ7
Content-Disposition: form-data; name="file1"; filename="file1"
Content-Type: text/plain
------WebKitFormBoundaryVkgESMAGtmPMlPZ7--
Tôi cũng đã cố gắng để điền vào các đốm màu thông qua một ArrayBuffer, cùng một kết quả. Tôi đã lướt web được 2 ngày rồi, tôi đã không tìm thấy câu trả lời nào. Tôi đã tìm thấy một vấn đề mở trên Android (http://code.google.com/p/android/issues/detail?id=22441) nhưng nó có vẻ khá chết.
Đây có phải là sự cố chrome thực sự không? Có ai đó có một đầu mối về điều này, hay tôi nên mở một vấn đề trên tracker chromium?
Thx để được trợ giúp của bạn!
FYI: Tôi đã mở một vấn đề với chromium: https://code.google.com/p/chromium/issues/detail?id=119254 – Sebastien
Dường như đây vẫn là một vấn đề, có cách giải quyết nào không? – zfedoran