zimg est un service de stockage d'images avec fonction de traitement d'image. Vous pouvez télécharger des images sur le serveur zimg, puis obtenir les images traitées via l'URL avec des paramètres. Aujourd'hui, notre contenu principal consiste à utiliser php pour télécharger des images sur le zimg. serveur, j'espère que vous l'aimerez tous
Récemment, notre projet nécessite un serveur d'images pour stocker les avatars des utilisateurs. Nous utilisons zimg pour traiter et stocker les images. Voici une brève introduction sur la façon d'utiliser PHP pour télécharger des images. zimg et obtenez les images correspondantes. Retourner les informations
Utiliser la bibliothèque curl pour télécharger
Selon la documentation d'utilisation de zimg, si nous voulons que zimg renvoie les informations json, nous devons raw_post pour télécharger l'image. Voici le code de démonstration
$upload_url = 'http://192.168.0.99:5000/upload'; $image_file = './test.jpg'; // 获取图片后缀 $value = explode(".", $image_file); $extension = strtolower(array_pop($value)); // 生成本地临时存储路径,并生成相应文件夹 $dir = 'aurthur'; $save_path = 'uploads/'.$dir.'/'.date('Y').'/'.date('md').'/'; $save_rule = md5(uniqid(mt_rand(), true)); if(!is_dir($save_path)){ if(false === mkdir($save_path, 0700, true)){ exit('创建文件夹失败'); } } $save_image_file = $save_path.$save_rule.".$extension"; // 把图片存储到临时路径 file_put_contents($save_image_file, file_get_contents($image_file)); // 获取临时保存的图片的真实地址(绝对路径) $realpath = realpath($save_image_file); // 上传图片到 zimg 图片存储服务 $ch = curl_init(); // 将图片内容读取到变量 $post_data ; $post_data = file_get_contents($realpath); $headers = array(); // 一定要添加此 header $headers[] = 'Content-Type:'.$extension; curl_setopt($ch, CURLOPT_URL, $upload_url); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);// raw_post方式 $info = curl_exec($ch); curl_close($ch); $json = json_decode($info, true); $signature = $json['info']['md5']; echo $signature;
Si vous souhaitez tester le code, veuillez modifier l'URL de téléchargement ci-dessus sur votre propre serveur zimg. adresse et remplacez image_file par ce que vous devez télécharger Le chemin de l'image
Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Explication détaillée des étapes pour construire un environnement de développement PHP avec Docker
phpRésumé des méthodes d'ouverture des fichiers de format
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!