加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP7基于curl实现的上传图片性能

发布时间:2023-06-19 13:22:43 所属栏目:PHP教程 来源:
导读:本文实例讲述了PHP7基于curl实现的上传图片功能。分享给大家供大家参考,具体如下:根据php版本不同,curl模拟表单上传的方法不同。php5.5之前:$curl = curl_init(); if (defined('CURLOPT_SAFE_UPLOAD')) {

本文实例讲述了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('file' => '@' . realpath($path));//<=5.5 

} //Cuoxin.com 

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['file']['tmp_name']; 

  $name = $_FILES['file']['name']; 

  move_uploaded_file($tmp_name,'audit/'.$name); 

?> 

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!