首頁  >  文章  >  後端開發  >  PHP7基於curl實現的上傳圖片功能

PHP7基於curl實現的上傳圖片功能

不言
不言原創
2018-06-01 11:53:341734瀏覽

這篇文章主要介紹了PHP7基於curl實現的上傳圖片功能,結合實例形式對比分析了php5.5之前與php7版本的curl圖片上傳功能相關實現與使用技巧,需要的朋友可以參考下

本文實例講述了PHP7基於curl實現的上傳圖片功能。分享給大家供大家參考,如下:

依php版本不同,curl模擬表單上傳的方法不同

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

php5.5之後,到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);

下面提供一個相容的方法:

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

#其中:

#$path:為待上傳的圖片位址

$url:目標伺服器位址

例如

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

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

相關推薦:

#PHP實作多圖上傳和單一圖上傳功能

PHP基於pdo的資料庫操作類別【可支援mysql、sqlserver及oracle】

#PHP實作防止表單重複提交功能(基於token驗證)

#

以上是PHP7基於curl實現的上傳圖片功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn