我美吗?
上篇文章我们谈到CURL的大略用法,通报GET和POST参数,本文将先容如何上传图片。
须要把稳的是在5.6版本以下在图片路径地址前加上@符号即可,而PHP5.6版本则须要利用新得方法

new CURLFile(图片路径);方可实行。
或者还是用原来的方法在CURLOPT_POSTFIELDS设置项前加上CURLOPT_SAFE_UPLOAD设置项,设为FALSE。即curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);欢迎加qun 598394989
以下用图片示例:
curl页面
upload页面
实行之后浏览器效果
上传之后再img目录下穿件的日期目录
so easy还有什么说的赶紧马克!
!
源代码:
-------------------curl.php----------------------
//要求地址
$url = \"大众http://localhost/BasicPHP/study/curl/upload.php\"大众;
//图片地址
$img = \公众F:/wamp64/www/BasicPHP/study/curl/aaa.png\"大众;
//php 5.6以下版本
// $fields = array (
// \"大众file\"大众 => \公众@F:/wamp64/www/BasicPHP/study/curl/aaa.png\"大众
// );
//PHP5.6版本利用此办法
$fields['file'] = new CURLFile($img);
//初始化cURL会话
$ch = curl_init();
//设置要求的url
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//设置为post要求类型
curl_setopt($ch, CURLOPT_POST, 1);
// curl_setopt($ch, CURLOPT_SAFE_UPLOAD,false);第二种放式
//设置详细的post数据
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
//运行
$response = curl_exec($ch);
//curl_getinfo()获取各种运行中信息,便于调试
$info = curl_getinfo($ch);
echo \"大众实行韶光\"大众.$info['total_time'].PHP_EOL;
//开释资源
curl_close($ch);
print_r($response);
-----------------------upload.php---------------------------------------
var_dump($_FILES);
if(is_uploaded_file($_FILES['file']['tmp_name'])){//是否有上传文件
$ext = pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION);//获取后缀名
$newName = time().mt_rand().'.'.$ext;//用韶光戳和随机数取名
if(file_exists('img/'.date('Ymd'))){//是否存在目录
if(move_uploaded_file($_FILES['file']['tmp_name'],'img/'.date('Ymd').'/'.$newName)){//将上传的文件移动到新位置
echo '上传成功';
}else{
echo '文件上传失落败';
}
}else{
if(mkdir('img/'.date('Ymd'))){//创建目录
if(move_uploaded_file($_FILES['file']['tmp_name'],'img/'.date('Ymd').'/'.$newName)){//将上传的文件移动到新位置
echo '上传成功';
}else{
echo '文件上传失落败';
}
}else{
echo '目录创建失落败';
}
}
}