少侠说好的CURL上传文件说来就来

2022-10-11 21:45:20 170 0
魁首哥

我美吗?

上篇文章我们谈到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 ‘目录创建失败’;

}

}

}

收藏
分享
海报
0 条评论
170
上一篇:CentOS8 安装数据库管理工具之phpMyAdmin5.1.1 下一篇:最全的PHP7新特性

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码