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處理的同樣便可
相關文章
相關標籤/搜索