码迷,mamicode.com
首页 > Web开发 > 详细

php curl上传文件

时间:2015-11-15 17:53:46      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

curl是个好东西,之前自己搞过一个小的项目来帮朋友刷票,后来慢慢发展,做了些可以刷各种视频播放、评论的小平台,当然各大网站也不是吃素的,各种防刷机制我这里就不多扯了,里边也有各种坑自己一步一步躺了过来,办法总比困难多!最近公司项目中有个需求,要抓取淘宝、天猫、京东的商品数据,这其中包含了一些图片文件,而这些文件通过各种途径找到原文件地址后再上传到公司的oss账号内,平时大家上传基本都是form表单搞定,但是这个需求form却不适合了,那么,curl可以派上用场了!

不多说,上代码:

$file_path = realpath(‘./1447399809.jpg‘);

$data = array(‘images‘=>‘@‘.$file_path.";type=image/jpeg"); //老版用法 

//$data = array(‘images‘=>new CURLFile($file_path).");//php5.5以上推荐用法,没测试 
以上老版中“@+文件全文路径”表示告诉curl这个是文件上传处理

$ch = curl_init(); //初始化
curl_setopt是很重要的,里边各种参数这里不一一列举,只说几个这次用到的
curl_setopt($ch,CURLOPT_URL,$url); //上传到指定地址
curl_setopt($ch,CURLOPT_POST,true); //post方式上传
curl_setopt($ch,CURLOPT_HEADER, false); //不输出头部信息
curl_setopt($ch,CURLOPT_SAFE_UPLOAD, false);//强制PHP的cURL模块拒绝旧的@语法,仅接受CURLFile式的文件,php5.6已经改为true,我是5.6的,用了@,此处必须为false 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); //成功返回true,输出内容
curl_setopt($ch,CURLOPT_POSTFIELDS,$data); //提交的数据

//这里说明一点,CURLOPT_POSTFIELDS 一定要放在前面设置以后,不仅仅是上传,其他curl 操作也这样,保持参数设置有效
$result = curl_exec($ch); //执行提交
curl_close($ch);//关闭
$url这个地址就是接收处理上传的服务端代码,这个和form处理的一样即可

php curl上传文件

标签:

原文地址:http://my.oschina.net/u/272712/blog/530556

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!