この記事では、PHP がアプリ側から送信されたファイル ストリームを受信する方法を主に紹介し、PHP のカールベースのファイル転送操作に関するスキルを必要としている方は参考にしてください。アプリ側から送信されたファイルストリームを受信するPHP。参考までに皆さんと共有してください。詳細は次のとおりです:
ソリューションのアイデア:1. クライアントは複数の画像をパラメータとともにループでアップロードし、特定のルールを使用して本番データ ストリーム (画像) を結合します。データは最後に配置されます)
2 . 送信にはデータストリームを使用し、PHP サーバーは file_get_content('php://input') を使用して受信します3. 送信が完了すると、データストリームは次のように分割されます。ルールに従って、最終的な画像データが取り出され、画像ファイルに書き込まれます
次のコードは、単一の画像とパラメータの PHP ファイルを送信します。 複数の画像をループで呼び出すことができます。
<?php /* curl_post.php */ // 设置请求的POST地址,必须是包含网址的域名,不能是相对路径 $url = 'http://www.xxx.com/post.php'; $pic_data = file_get_contents('./me.jpg'); $data = [ 'username=chafang_'.rand(100, 999), 'password='.md5('123456'), 'pic=' => $pic_data, // 这里存放图片数据 ]; // 使用 '#####' 进行分割数组 $strData = implode('#####', $data); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 0); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $strData); $data = curl_exec($curl); curl_close($curl); // 显示post的返回值 echo ($data);
curlでリクエストされたPHPファイルを受け取り、json形式で返します
<?php /* post.php */ $content = file_get_contents("php://input"); $domain = 'http://www.xxx.com/'; // 注意这里需要有写权限 $filename = 'update/'.time().'_'.rand(100000, 999999).'.jpg'; $data = explode('#####', $content, 3); $count = count($data); $result = []; // 如果文件写入成功 if (file_put_contents($filename, $data[$count - 1])) { // 删除数据中最后一个元素(就是图片) unset($data[$count - 1]); foreach ($data as $val) { // 返回参数,且参数值不能存在 '=' 号 $tmp = explode('=', $val, 2); $result[$tmp[0]] = $tmp[1]; } // 组合图片访问地址 $result['pic'] = $domain.$filename; } echo json_encode($result);
以上がアプリから送信されたファイルストリームを受信するためのPHPメソッドのサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。