Safari 5.1 (Windows版) は multipleなファイル送信ができないっぽい
Posted: Updated:
表題の通りWindows版 Safari 5.1の不具合
大まかには上記で言われていることと同様の現象かと思います。Windows版のSafari 5.1系ではmutiple属性を使った複数ファイルのアップロードが正常に行えないみたいです。
検証はWindows7に各バージョンのSafariを入れて行いました。4.x以前は試していないです。
- NGだったバージョン
- Widnows版 Safari 5.1, 5.1.2
- OKだったバージョン
- Widnows版 Safari 5.0.5, 4.0.5
5.1から少しバージョンを落とせばOKだったり、ファイルの選択ウインドウはさも当然のように複数ファイル選べちゃったりしてアンニュイな感じですね。
テスト用のHTML
すごく単純にinput[type="file"]
に、multiple
属性を付けているだけです。
<form action="" method="post" enctype="multipart/form-data"> <input type="file" name="images[]" value="" multiple="multiple" accept="images/*" /> <input type="submit" name="submit" value="アップロード" /> </form>
はじめはサーバサイドで確認
getimagesizeでコケるな〜と思っていたら、filesizeが0とか。おいおい。
<?php foreach ($_FILES['images']['tmp_name'] as $file) { var_dump(is_readable($file)); // true var_dump(filesize($file)); // 0 var_dump(getimagesize($file)); // Notice: getimagesize() [function getimagesize]:Read error! } ?>
ついでにクライアントサイドも確認
まさかと思って見ると、こちらもsizeが0と表示されて確信。
jQuery(function($) { $(':file').change(function() { var files = this.files, i = 0, iz = files.length; for (; i < iz; i++) { console.log(files[i].size); // 0 } }); });
旧バージョンSafariの確保
古いバージョンのSafariはここで確保していました。
まー、ブラウザ実装からしてコレではどうしようもないので、今回はさっさと諦めたのでした。