トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/335

ページの作成や編集にはユーザ登録が必要です。

長いファイル名の添付ファイルをダウンロードすると Internal Server Error が発生する

  • 投稿者: Kenichi Maehashi
  • カテゴリ: 本体
  • 優先度: 重要
  • 状態: リリース済
  • 日時: 2009年12月02日 14時55分45秒

 内容

  • 2009-12-02: コメントにてご指摘頂きました通り、内容と掲題が誤っておりましたので訂正させていただきました。
    • 旧タイトル: 添付ファイルのダウンロード時に日本語ファイル名が文字化けする

概要

添付ファイルのファイル名に日本語が使用されている場合、Mozilla Firefox でダウンロードしようとするとファイル名が文字化けします。

添付ファイルのダウンロード時に、長いファイル名が使われていると Internal Server Error が生じます。サーバ環境は Apache/2.2.3 で、エラーログには次のように記録されます。

malformed header from script. Bad header= =?ISO-2022-JP?B?...

ファイル名が長いと、エンコードする際に folding されてしまうことが原因のようです。

パッチ

動作確認環境

  • Windows Vista (日本語版)
    • Mozilla Firefox 2.x / 3.0.x / 3.5.x
    • Safari 4.x
    • Opera 9.x
    • Internet Explorer 6 / 7 / 8 (MSIE 時の動作は変更しません)

 コメント

  • 当方、WindowsXP SP3 上の Firefox 3.0.15 を用いて、本ページの添付ファイル新規テキスト.txt(308) をダウンロードしてみましたが、ファイル名の文字化けは発生しないようです。不具合の発生には、何か環境要因が絡んでいるのではないでしょうか。 - 菜梨 (2009年12月02日 16時56分15秒)
  • 菜梨さま: ご指摘ありがとうございます。手元の環境で複数の問題が発生したため、混同してしまっていました。正しくは「添付ファイルのダウンロード時に、長い日本語ファイル名が使われていると Internal Server Error が生じる」です。検証のためのファイル「日本語ファイル名を持つファイルのテスト用ファイル.txt(1105)」を添付します。 - Kenichi Maehashi (2009年12月02日 17時15分46秒)
  • Jcode::mime_encode() で変換する文字列が長い(76 Byte? 以上)と、変換結果が folding (= 変換結果の先頭に改行が付加)されて、結果的に違反ヘッダになるということですね。よって、日本語かどうかは関係なく、長いファイル名なら問題起きるようです。01234567890123456789012345678901234567890123456789012345678901234567890123456789.txt(1111) - 菜梨 (2009年12月02日 18時12分54秒)
  • 菜梨さま: 検証いただきありがとうございます。ASCII 範囲内の文字のみであればエンコードされないと思い込んでいましたが、そのようなことはないのですね。たびたび申し訳ありません。補足いただいた通りの内容と思います。 - Kenichi Maehashi (2009年12月02日 19時11分58秒)
  • 内容について、上記内容を反映して「日本語」を消しました。 - Kenichi Maehashi (2009年12月02日 19時13分23秒)
  • BugTrack-wiki/347 と同様の問題かと思います。修正版をコミットしました。 - KG (2017年12月08日 17時40分56秒)
  • fswiki3.6.5でリリースしました。 - KG (2018年03月30日 11時23分20秒)
お名前: コメント: