ブログ
iOS6版Safariのファイルアップロード
レスポンシブウェブサイト(1つのソースでPCとiPad/iPhoneに対応したウェブサイト)の問い合わせフォーム制作の依頼を受けた時に少し嵌ってしまいました。
アップロードされた複数の画像ファイルをメールに添付して送信するというものだったのですが、何故かiOS6版Safariでテストを行うと添付ファイルが全て同じ画像になってしまいました。
PCからは期待通り動作していますし、iOS6版Safariからの操作時もエラーも発生していなかったのでどうしてだろう?と頭を抱えてしまいました。
調べてみたところアップロードした全てのファイルが同じファイル名になっていました。
どうして同じファイル名になるのか?というとiOS6版のSafariがそうしているから、としか答えようがありませんがウェブで調べてみると結構知られている「仕様」のようでした。(不具合のようにしか思えないのですが。。。)
複数ファイルのアップロードを実現するためには1つのファイル選択ボタンで複数ファイルを選択可能にする方法と、複数のファイル選択ボタンを用意して、1つのボタンに1つのファイルを選択させる方法があります。
そのどちらの方法をとっても全てのアップロードファイルが同じファイル名になります。
複数ファイルアップロードという要件自体あまり多くないのかもしれませんが。。。
結局のところ、アップロードしたファイルが同じファイル名だったらファイル名の末尾に番号を付ける、という対処をしました。
iOS6版のSafariでファイルアップロードではカメラロール(撮影済みの写真置き場)から選択方法と撮影した画像をそのままアップロードする方法が選べるようになりました。
これは思いのほか便利でテストの際にはとても重宝しました。
今後はファイルをアップロードさせるサービスが増えるかもしれませんね。