input type="file" multiple で夢の複数ファイルをアップロード

a-blog cms でブログを書いていて面倒なのが複数の画像ファイルを並べたい時だと思う。これまでのHTMLというかINPUTタグ(type="file")では、1つのファイルしか選択する事ができなかったが、HTML5のフォームの拡張で複数ファイルの選択ができるようになったようだ。それがmultiple属性というヤツ。


今まではFlashというか.swfの機能を利用して複数のファイルをアップロードさせる機能を実現させるような事も出来ていましたが、変更する部分が多くなり実現が大変だろうという事で見送っていました。


複数のファイルを選択する multiple 属性

いい時代になりましたね。HTML5で対応しているブラウザ(Chrome 9、Firefox 4、Safari 5、Opera 11 は対応済みで IE 9 は未対応らしい)であれば、

<input type="file" name="image_file[]" multiple="multiple">

と書くだけで、まずは複数のファイルを選択する事が可能になります。


選択した結果として、2ファイルという表示がされています。

画像ファイルのみを指定可能にする accept 属性

また、画像だけを選択させたい時には、accept="image/*" のように書く事で、対応しているブラウザ(Chrome ?、Firefox ?、Opera ? の現状のバージョンでは対応済みで Safari 5、IE 9 は未対応らしい)であればファイルの選択も指定させる事が可能になるようだ。どのバージョンから対応しているのか情報が見つけられていませんので、どなたかご存知の方がいらっしゃいましたらお知らせ下さい。

<input type="file" name="image_file[]" multiple="multiple" accept="image/*">

ファイル選択のキャプチャ画像を見て頂くと、ファイル形式:画像ファイル という表示が出て、.pdf が選択できないようになっているのが分かると思います。これは Firefox 8 でのテスト結果で、chorome 16 では .pdf の選択はできないが、ファイル形式のプルダウンは表示されません。


a-blog cms での対応を考える

うちで作っている a-blog cms での実装する事を考えてみます。

まずフォームを対応にするには簡単な事で、/themes/system/admin/entry/unit.html というテンプレートファイルの以下の部分を探し

<input type="file" name="image_file_{id}[]" size="30" />

以下のように追記してみます。

<input type="file" name="image_file_{id}[]" size="30" multiple="multiple" accept="image/*" />

この次にリリースする予定の 1.5.0 では、最低限 accept 属性は設定して対応しているブラウザでは画像ユニットでは画像のみ選択できるようにするようにします。

受け取り側のPOSTモジュール側はプログラムの改良が必要なようです。それをしないと複数のファイルのどれがアップされるのか、ちょっと分からない感じのようです。システムの動きとしては、

新規登録・追加
表示順(sort)・配置(align)・サイズ(image_size_xx)・キャプション(image_caption_xx)・リンク(image_link_xx)・代替テキスト(image_alt_xx)については、全ての画像が同じデータを編集するようにする。
変更
複数のファイルについては無視というか、何も対応しないでおいてもいいんじゃないかと思う。

こんな感じで、どうでしょうか? この機能については、1.5.0 には実装されないかもしれませんが、将来的には出来るようになるといいですね。



コメント

山本一道

山本 一道

有限会社アップルップル

名古屋のホームページ制作会社「有限会社アップルップル」の代表をしています。弊社で開発しているCMS「a-blog cms」や、名古屋の「WCAN」という名古屋のWeb制作者のためのセミナーの主催や、コワーキングスペース「ベースキャンプ名古屋」も始めました。

エントリーリスト

カテゴリーリスト

タグクラウド

実践! コンテンツファーストのWebサイト運用  a-blog cmsではじめるCMSプロトタイピング

2016年6月30日に株式会社ボーンデジタル様より「実践! コンテンツファーストのWebサイト運用 a-blog cmsではじめるCMSプロトタイピング」が発売されました。