ホームページ >バックエンド開発 >PHPチュートリアル >http - PHP PUT 経由でファイルを転送するときにファイルのコンテンツを取得するにはどうすればよいですか?

http - PHP PUT 経由でファイルを転送するときにファイルのコンテンツを取得するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-10-11 14:23:321118ブラウズ

最近はフロントエンドとバックエンドを分離して、バックエンドPHP所有Api都使用RESTFulスタイルをやっています。

しかし、PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上传临时文件,待验证),使用POST是可以的,并且PUT标准输入流を使用する場合、取得されたデータは次の形式で読み取られるため(標準入力ストリームにファイル情報が含まれているため、上記で一時ファイルがアップロードされなかったと推測されます)、これを個別に解析する必要があります。

リーリー

現在、2 つのアイデアがあります:

  1. If上传一時ファイル (これはテスト中です...): アップロードされた場合、一時ファイルを読み取ることができます。

  2. 場合 不上传临时文件:尝试解析这串form-data传过来的参数,但我不知道这种格式phpそれを分析するための対応する方法がありません。

ところで、RESTFulを使用するとよく問題が発生します:

  1. クロスドメインに関しては、通常のフォーム (GET、POST) で問題ありませんが、PUT、DELETE を使用する場合は、クロスドメイン ヘッダーを設定する必要があります。
    追記: 分かりません。なぜ必要なのですか?

  2. MDN HTTP メソッド ドキュメントにPUTDELETE詳細がありません...

  3. PHP の取得PUTDELETE需要到file_get_contents('php://input');获取参数信息,没有类似$_PUT,$_DELETEパラメータ情報を取得するには、file_get_contents('php://input'); に移動する必要があります。同様の $_PUT はありません。 $_DELETE グローバル変数。

============= [22:01] ===================

買い物をするために stackoverflow に行ったところ、多くの人が同じ問題に遭遇していることがわかりましたが、これより良い解決策はまだ見つかっていません。

さらに、この記事では、jquery ajax put file、php save file、ブロガーと私は同じ問題に遭遇しましたが、彼は通常のルールを使用してデータを解析して処理しました。

真似できるもっと良い解決策はないか考えていましたPHP处理POST请求一样,把form-data串,解析出来,普通参数,存到$_PUT($_POST), 文件传到临时目录,然后返回文件信息到$_FILES

============ [10-10 10:16] ===================

このブログ投稿では、multipart/form-data 形式を使用してファイルをアップロードする方法について説明します。form-data 形式について説明します。

今のところは、単純に自分で解析

コンポーネントを書いてみましょう。 form-datacomposer

返信内容:

最近はフロントエンドとバックエンドを分離して、バックエンド

スタイルをやっています。 PHP所有Api都使用RESTFul

しかし、

を使用する場合、取得されたデータは次の形式で読み取られるため(標準入力ストリームにファイル情報が含まれているため、上記で一時ファイルがアップロードされなかったと推測されます)、これを個別に解析する必要があります。 PUT上传文件的时候,发现$_FILES没有文件信息(可能没有上传临时文件,待验证),使用POST是可以的,并且PUT标准输入流 リーリー

現在、2 つのアイデアがあります:

  1. If

    一時ファイル (これはテスト中です...): アップロードされた場合、一時ファイルを読み取ることができます。 上传

  2. 場合

    それを分析するための対応する方法がありません。 不上传临时文件:尝试解析这串form-data传过来的参数,但我不知道这种格式php

ところで、RESTFulを使用するとよく問題が発生します:

  1. クロスドメインに関しては、通常のフォーム (GET、POST) で問題ありませんが、PUT、DELETE を使用する場合は、クロスドメイン ヘッダーを設定する必要があります。

    追記: 分かりません。なぜ必要なのですか?

  2. MDN HTTP メソッド ドキュメントに

    詳細がありません...PUTDELETE

  3. PHP の取得

    パラメータ情報を取得するには、file_get_contents('php://input'); に移動する必要があります。同様の $_PUT はありません。 $_DELETE グローバル変数。 PUTDELETE需要到file_get_contents('php://input');获取参数信息,没有类似$_PUT,$_DELETE

============= [22:01] ===================

にアクセスして閲覧したところ、多くの人が同じ問題に遭遇していることがわかりましたが、これより良い解決策はまだ見つかっていません。

stackoverflowさらに、この記事では、jquery ajax put file、php save file、ブロガーと私は同じ問題に遭遇しましたが、彼は通常のルールを使用してデータを解析して処理しました。

真似できるもっと良い解決策はないか考えていました

============ [10-10 10:16] ===================

このブログ投稿では、multipart/form-data 形式を使用してファイルをアップロードする方法について説明します。form-data 形式について説明します。

今のところは、単純に自分で解析 form-datacomposer コンポーネントを書いてみましょう。

PHP のグローバル変数 $_FILES は、post によってアップロードされたファイルのみを取得できます。ファイルをアップロードするために put を使用したい場合は、ストリームを自分で処理する必要があります

携帯電話の場合、現在の主流はget+post+jsonです

4、標準フォームデータアップロード形式

php putは個別に解析する必要があり、putは通常、json形式のデータを受け入れるために使用されます

さらに、質問を再編集しました:)

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