上篇文章我们谈到CURL的简单用法,传递GET和POST参数,本文将介绍如何上传图片。
需要注意的是在5.6版本以下在图片路径地址前加上@符号即可,而PHP5.6版本则需要使用新得方法
new CURL file (图片路径);方可执行。
或者还是用原来的方法在CURLOPT_POSTFIELDS设置项前加上CURLOPT_SAFE_UPLOAD设置项,设为FALSE。即curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);欢迎加qun 598394989
以下用图片示例:
curl页面
upload页面
执行之后浏览器效果
上传之后再img目录下穿件的日期目录
so easy还有什么说的赶紧马克!!
源代码:
——————-curl.php———————-
//请求地址
$url = “”;
//图片地址
$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 ‘目录创建失败’;
}
}
}
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~