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はここで確保していました。

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


Author

ahomuAyumu Sato

overflow, Inc.VPoE

東京資本で生きる名古屋の鳥類

Web 技術、組織開発、趣味など雑多なブログ。技術の話題は zenn にも分散して投稿しています。

Bio: aho.mu
X: @ahomu
Zenn: ahomu
GitHub: ahomu

Related

Latest

Archives

Tags

Search