デジハリ 新しい自分に生まれ変わろう
デジハリ 新しい自分に生まれ変わろう
2013.08.20

「Content-Disposition」ヘッダのエラー時に注意すること

tetsu

こんにちは、最近引っ越しをして台東区民になったtetsuです。

さて、今回はあまり遭遇するケースが少ないけれども、
知っておくと良いのかなと思うネタ事があったので記事にしたいと思いました。
※ちょっとハマったとも言えます(笑

事の発端

事の発端はPDF出力機能を利用した開発を行っていました。
普段通りに機能を実装しPDFのファイル名もこちらのよう日本語対応し、

「作業完了!」となるところが…

運用を開始してみるとちらほらと
「エラー 349  複数の Content-Disposition ヘッダーを受信しました。・・・」
と出てくるケースが発生。

あまり見ることが少ないケースで再度テストをしながら調べていくと下記のような要因があることを発見。

こういった要因もあるのかと学びつつ、
コーディングした箇所を再度見直してました。

「Content-Disposition」ヘッダのコードを調べてみた

その結果…
どこを見ても、どこをデバックしても2重に「Content-Disposition」ヘッダを出している様子が無い。

さて、困った…
機能要件を満たせないとなると機能実装に至らないので、もう一度現象が発生する箇所を見直してみました。さらに現象が発生しないケースと現象が発生するケースの違いを再確認してみました。

結果

正常に動作するケースと問題が発生するケースの違いを紐解くと、原因は「,」(カンマ)でした。ファイル名に「,」が存在すると発生する問題だったのです。完全に盲点でした。

さらに調べていくと「;」や「?」、「#」、「\」なども、問題がある文字列であることが判明。ちょっとした事でもハマってしまうので覚えることは、まだまだあるなと痛感した経験です。