标签:
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处理的一样即可
标签:
原文地址:http://my.oschina.net/u/272712/blog/530556