ホームページ >バックエンド開発 >PHPチュートリアル >php://input はファイルの受信に失敗しました。画像が非常に小さくなり、開くことができませんでした。
画像の php データ
次のように php://input を使用して画像コードを受信します$file= file_get_contents('php://input'); $this->filename=time().'.jpg'; $dirname .='Uploads'.DIRECTORY_SEPARATOR.'face'.DIRECTORY_SEPARATOR.'1'; $url=$dirname.DIRECTORY_SEPARATOR.$this->filename; $handle=fopen($url, 'w'); fwrite($handle, $file); fclose($handle);
image=955e0caajw1dwnvnfmwk4j.jpg&submit=%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88
はフォーム コントロールの値です
画像のアップロードは $_FILES 配列を使用して処理する必要があります
アップロードされたファイルのデータ ストリームは php によってインターセプトされるため、php://input は他のフォーム コントロールの値のみを取得できます
image=955e0caajw1dwnvnfmwk4j .jpg&submit=%E4%B8%8A%E5% 82%B3%E6%AA%94%E6%A1%88
はフォーム コントロールの値です
写真のアップロードは $_FILES 配列で処理する必要があります
なぜならアップロードされたファイルのデータストリームはphpによってインターセプトされ、php://inputでのみ他のフォームコントロールの値を取得するために、Androidクライアントから画像を受信したいのですが、Androidはファイルストリームの形式で画像を送信します。 $_FILES はファイル ストリームを受信できますか?
image=955e0caajw1dwnvnfmwk4j.jpg&submit=%E4%B8%8A%E5%82%B3%E6%AA%94%E6%A1%88
はフォーム コントロールの値です
画像のアップロードは、 $_FILES 配列
ファイルアップロードのデータフローが php によってインターセプトされるため、php://input は他のフォーム コントロールの値しか取得できません Android クライアントから送信された画像を受信したい。ファイル ストリームの形式で、$_FILES はファイル ストリームを受信できますか?
php://input からの画像データ ストリームのみを使用できます
file_put_contents('images/1.jpg',file_get_contents("php://input"));
保存します
OK、print_r($_FILES) ただそれを知っている!
クライアントが何であっても、php://input を通じて取得できるものは次のとおりです。
image という名前のコントロールの値: 955e0caajw1dwnvnfmwk4j.jpg
submit という名前のコントロールの値: %E4%B8%8A%E5%82% B3% E6%AA%94%E6%A1%88 (大文字)
とにかく、画像データ ストリームがありません