Cet article présente principalement la méthode par laquelle PHP reçoit le côté application pour envoyer des flux de fichiers, impliquant des compétences liées aux opérations de transfert de fichiers basées sur PHP curl, les amis dans le besoin peuvent s'y référer
L'exemple de cet article raconte la méthode côté application de réception PHP pour envoyer un flux de fichiers. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Solution :
1 Le client télécharge plusieurs images en boucle, avec des paramètres et des combinaisons en utilisant. certaines règles Produisent un flux de données (données d'image à la fin)
2. Utilisez le flux de données pour la transmission, et le serveur php utilise file_get_content('php://input') pour recevoir
3. , le flux de données sera traité selon les règles Split, extraira les données d'image finales et les écrira dans le fichier image
Exemple de code :
Ce qui suit Le code consiste à envoyer une seule image et un fichier PHP de paramètres. Plusieurs images peuvent être appelées en boucle.
<?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);
Recevoir le fichier PHP demandé par curl et renvoyer le format 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);
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!