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 サイトの他の関連記事を参照してください。