2012-01-27 4 views
3

ヘッダーContent-Type: multipart/form-data; boundary=-----NPRequestBoundary-----でHTTPポストを使用してファイルをアップロードしようとすると、すべてが正常に動作しますが、Content-Type: multipart/form-data; boundary=-----NPRequestBoundary-----; charset=UTF-8を使用しようとすると、完全に空の$ _FILES配列が発生します。

PHPまたはWebサーバーに問題がありますか?私はこの形式がContent-Typeであることを知っています。POSTファイルのアップロード - PHPのmultipart/form-data + UTFのバグ?

答えて

1

バグはSVN revで修正されました。 #316373(5.3.9リリースでカバーしています)

1

Content-Typemultipart/form-dataであるため、これは部品から構成されており、すべての部品は独自のContent-Typeを持つことができます。 charsetパラメータは、コンテンツタイプがtext/plainの場合にのみ使用されます。したがって、コンテンツタイプがmultipart/form-dataの場合は意味がありません。

+0

あなたは間違っていると思います。ファイル名のエンコードはどうですか? 'Content-Type'に直接文字セットを追加すると注意が必要です。この中で最悪のことは、クライアントアプリケーションを変更できないということです。 – kiler129

0

私はこの問題の回避策を見つけました。私にとっては、それはlitespeedの下では動作しません(私はこの問題を避けるために、私はリバースプロキシをApacheに使用しました)。
<Location "/upload.php">
RequestHeader set Content-Type "multipart/form-data; boundary=-----NPRequestBoundary-----"
</Location>

これはContent-Typeヘッダを置換するためにウェブサーバを強制します。今のところ私は確信しています - これはPHPバグです(誰かが文字セットがboundary=より前に出ることを前提としています)

関連する問題