php curl上传文件

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

很少说,上代码: 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处理的同样便可
相关文章
相关标签/搜索