Maison  >  Article  >  développement back-end  >  Astuces PHP7 PHP pour télécharger des images basées sur curl

Astuces PHP7 PHP pour télécharger des images basées sur curl

jacklove
jackloveoriginal
2018-06-25 16:59:302929parcourir

Cet article présente principalement la fonction de téléchargement d'images implémentée par PHP7 basée sur curl, et compare et analyse les compétences d'implémentation et d'utilisation de la fonction de téléchargement d'images curl avant php5.5 et php7 sous forme d'exemples. à cela

L'exemple de cet article décrit la fonction de téléchargement d'image implémentée par PHP7 basée sur curl. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Selon les différentes versions de php, la méthode de téléchargement du formulaire de simulation curl est différente

Avant php5.5

$curl = curl_init();
if (defined('CURLOPT_SAFE_UPLOAD')) {
  curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
}
$data = array('file' => '@' . realpath($path));//‘@' 符号告诉服务器为上传资源
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1 );
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
$result = curl_exec($curl);
$error = curl_error($curl);

Après php5.5, vers php7

$curl = curl_init();
curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
$data = array('file' => new \CURLFile(realpath($path)));
url_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1 );
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
$result = curl_exec($curl);
$error = curl_error($curl);

Fournir une méthode compatible :

$curl = curl_init();
if (class_exists('\CURLFile')) {
 curl_setopt($curl, CURLOPT_SAFE_UPLOAD, true);
$data = array('file' => new \CURLFile(realpath($path)));//>=5.5
} else {
 if (defined('CURLOPT_SAFE_UPLOAD')) {
  curl_setopt($curl, CURLOPT_SAFE_UPLOAD, false);
 }
 $data = array(&#39;file&#39; => &#39;@&#39; . realpath($path));//<=5.5
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1 );
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT,"TEST");
$result = curl_exec($curl);
$error = curl_error($curl);

Parmi elles :

$path : est l'adresse de l'image à uploader

$url : adresse du serveur cible

par exemple

$url="http://localhost/upload.php";
$path = "/bg_right.jpg"

Exemple upload.php :

<?php
  file_put_contents(time().".json", json_encode($_FILES));
  $tmp_name = $_FILES[&#39;file&#39;][&#39;tmp_name&#39;];
  $name = $_FILES[&#39;file&#39;][&#39;name&#39;];
  move_uploaded_file($tmp_name,&#39;audit/&#39;.$name);
?>

Articles qui pourraient vous intéresser :

PHP5.0 ~ 5.6 chaque version compatibilité cURL fonction de téléchargement de fichiers exemple d'analyse compétences php

méthode d'implémentation de requête de bloc PHP analyse compétences php

Compatible avec php5 Analyse des compétences php avec la fonction de téléchargement de fichiers cURL exemple de php7

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn