ホームページ >バックエンド開発 >PHPチュートリアル >file_get_contents() は multipart/form-data を使用してファイルのアップロードを実行できますか?

file_get_contents() は multipart/form-data を使用してファイルのアップロードを実行できますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-18 13:19:30586ブラウズ

Can file_get_contents() Perform File Uploads with multipart/form-data?

file_get_contents() と multipart/form-data を使用したファイルのアップロード

CURL を使用したファイルのアップロードは簡単であるにもかかわらず、ユーザーは、 file_get_contents() は、http ストリーム コンテキストを使用してこのタスクを実行できます。

マルチパート コンテンツ タイプでは、ファイルのアップロードに課題が生じます。アップロードされたファイル内の各部分を区切るために境界を定義する必要があります。この境界は、コンテンツ本文に含まれない文字列と同様に、microtime(true) のタイムスタンプを使用して生成できます。

境界を定義したら、Content-Type ヘッダーで指定する必要があります。さらに、HTTP 仕様に従ってコンテンツ本文と送信ヘッダーを構築する必要があります。各フォーム フィールド名は、ファイル名および Content-Type ヘッダーとともに、Content-Disposition ヘッダーに含める必要があります。

複数のファイルをアップロードする場合、$content 文字列を生成するプロセスをファイルごとに繰り返す必要があります。

最後に、file_get_contents() の context パラメーターを使用してストリーム コンテキストを構築できます。 context パラメーター内の http 配列は、メソッド (POST)、ヘッダー (マルチパート境界を持つ Content-Type を含む)、およびコンテンツを構成します。

構成されたコンテキストを使用して file_get_contents() を実行すると、ファイルのアップロードが行われます。開始されました。特に、HTTP はバイナリ データを効果的に処理できるため、バイナリ ファイルのエンコードは不要です。

以上がfile_get_contents() は multipart/form-data を使用してファイルのアップロードを実行できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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