ホームページ >バックエンド開発 >PHPチュートリアル >PHP受信ポストファイルの問題

PHP受信ポストファイルの問題

WBOY
WBOYオリジナル
2016-06-23 14:14:001281ブラウズ

vc クライアントは abc.txt ファイルを php サーバーに送信します。サーバーが受信した abc.txt ファイルは空です。php://input に問題がありますか?ありがとう!

vc クライアント:
Content-Disposition: form-data; name="upload"; filename="abc.txt"
Content-Type: text/plain


PHP サーバー:
$ input = file_get_contents('php://input');
file_put_contents('abc.txt',$input);



ディスカッションへの返信 (解決策)

$_FILE を使用してパラメーターを受け取ります。

ファイルをアップロードするには、enctype="multipart/form-data" を使用します

および php://input はこの種のデータを受け入れませんが、元の投稿データ (生) を受け入れます


マニュアルで見ました、

php ://input は、要求された生データへのアクセスを提供する読み取り専用ストリームです。 POST リクエストの場合、特定の php.ini ディレクティブに依存しないため、$HTTP_RAW_POST_DATA の代わりに php://input を使用することをお勧めします。さらに、この場合、$HTTP_RAW_POST_DATA はデフォルトでは設定されないため、always_populate_raw_post_data をアクティブにするよりも必要なメモリが少なくなる可能性があります。 enctype="multipart/form-data"を使用した場合、php://inputは無効となります。


マニュアルを確認したところ、enctype="multipart/form-data" が使用されている場合、php://input が無効であることがわかりました。これを修正するには、$_FILES を使用します。皆さんありがとう

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。