IE9での画像アップロードについて

お世話になっております。

以下を参考にkintoneアプリ側のレコードに画像をアップロードする実装を行っております。
https://cybozudev.zendesk.com/hc/ja/articles/200724665-%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%A7%E5%BF%85%E9%A0%88%E3%81%A8%E3%81%AA%E3%82%8B3%E3%81%A4%E3%81%AE%E6%89%8B%E9%A0%86 

アップロード自体はできるようになりましたが、IE9 が FormData、Blob に対応しておらず、XHR もバイナリを送信できないため、対応に困っています。
サンプルで設定されているリクエストヘッダー で、 ‘X-Requested-With’: ‘XMLHttpRequest’ とあるところを見ると XHR2以外は想定していないという感じでしょうか?(IE9での画像アップロードは出来ない??)

======================================================================================

var blob = new Blob([new Uint8Array(array)], { type: ‘image/jpeg’ });

var formData = new FormData();
formData.append(“__REQUEST_TOKEN__”, kintone.getRequestToken());
formData.append(“file”, blob, imageName);

$.ajax({
type: “POST”,
url: encodeURI(‘/k/v1/file.json’),
data: formData,
contentType: false,
cache : false,
processData: false,
headers: {
‘X-Requested-With’: ‘XMLHttpRequest’,
},

}).done(function (res) {
//成功
}).fail(function (jqXHR, textStatus, errorThrown) {
//失敗
}).always(function (jqXHR, textStatus) {

});

c_c さん

 

Blob使えないのはつらいですね。こんな感じでarraybufferでやるのを試してみるかですね。

ありがとうございます。

試してみましたが、IE9では UInt8ArrayやArraybuffer が使用できないのと、同じようなバイナリを作成したとしても、IE9のXHRではバイナリの送信をサポートしておらず、出来ませんでした。

やはり難しそうですね…

そうなんですねぇ。それだと根本的に難しい感じですねぇ^^; 仮にバイナリが作れたとしても、$.ajax()もバイナリはいけなさそうなんですよね、XHRを捨てたくて以前調べた時には。