Maison >développement back-end >tutoriel php >Fonction de téléchargement d'image PHP7 basée sur curl

Fonction de téléchargement d'image PHP7 basée sur curl

不言
不言original
2018-06-01 11:53:341849parcourir

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);
?>

Recommandations associées :

PHP implémente des fonctions de téléchargement de plusieurs images et de téléchargement d'images uniques

Classe d'opération de base de données basée sur PHP pdo [peut prendre en charge MySQL, SQLServer et Oracle]

PHP implémente la fonction de soumission répétée du formulaire de prévention (basée sur la vérification du jeton)

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