Top > MyPage
 

ファイルダウンロード実装時のtips

はじめに

安否情報確認の案件(以下、MPと呼ぶ)でファイルのダウンロードを実装したときに、クライアントがIE6であるときに起こった現象と対策についてまとめる。

IE6でダウンロードしようとしたときのこと

MPの管理者のCSV管理画面にはCSVファイルをダウンロードするためのボタンが実装されている。当初は「user_Thu_May_29_16-53-48_JST_2008.csv」のようなファイル名で出力されるようにしていた。FIREFOXとIE7で試したときには、まったく問題なくそのようになったが、IE6で試したところ、ファイル名を取得できなかった。

クライアント側にダウンロードのダイアログを出させるため、ヘッダにContent-Dispositionをセットして次のように送信されるようにした。(ファイル名がuser_Thu_May_29_16-53-48_JST_2008.csvのとき)

Content-Disposition: attachment; \
    filename="user_Thu_May_29_16-53-48_JST_2008.csv"

こうしておくと、ブラウザは送信されてくるデータはファイルであるとして保存ダイアログを表示する。そのときfilename属性で指定されたファイル名がデフォルトで使用されるのだが、IE6ではうまくいかなかった。

原因と対策

原因は、一言で言うと「ファイル名がまずい」ということになる。ファイル名をuser_200806061230.csvのような形にしたところ、IE6でも問題なく動作するようになった。実のところを言えば、これを書いている時点で例に挙げたファイル名の何が悪いのか特定できていない。他のブラウザでも検証した結果から、ハイフンが悪いのではないかとは考えているが、確証は得られていない。なお、DonutとsleipnirではIE6と同じ結果となった。Operaでは48_JST_2008.csvというようなファイル名になった。