Safari 5.1 (Windows版) は multipleなファイル送信ができないっぽい

表題の通り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はここで確保していました。

まー、ブラウザ実装からしてコレではどうしようもないので、今回はさっさと諦めたのでした。