2019-04-23 14:09:00 3164瀏覽
本篇文章扣丁學(xué)堂PHP培訓(xùn)小編給讀者們分享一下PHP使用curl模擬瀏覽器表單上傳文件或者圖片的方法,文中有代碼列出供大家參考,對PHP開發(fā)技術(shù)感興趣的小伙伴就隨小編一起來了解一下吧,希望對小伙伴們有幫助。
前言
在瀏覽器使用html中的input框我們可以實現(xiàn)文件的上傳,表單元素選用 <input type="file"> 控件,form 表單需要設(shè)置 enctype="multipart/form-data" 屬性。比如:
總有一些時候,我們需要在后臺直接上傳文件而不是用瀏覽器進行前端上傳,這時候php的curl就提供了一些參數(shù)可以實現(xiàn)直接通過php后臺上傳文件。
php使用curl模擬上傳文件
curl上傳文件的時候,最重要的是一個“ @”符號的應(yīng)用,加@符號curl就會把它當(dāng)成是文件上傳處理。
上述代碼實例中的url是處理文件上傳的具體的接口,可以直接使用$_FILES來獲取上傳的臨時文件相關(guān)信息,打印出$_FILES如下,其中數(shù)組的鍵“Filedata”名可以在傳遞參數(shù)的時候自己指定:
<body>
<form action="UploadFile.php" method="post" enctype="multipart/form-data">
<input type="file" name="fileUpload" />
<input type="submit" value="上傳文件" />
</form>
</body>
具體代碼實例:
<?php
header('Content-type:text/html; charset=utf-8'); //聲明編碼
$ch = curl_init();
$url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459';
//post數(shù)據(jù),使用@符號,curl就會認為是有文件上傳
$curlPost = array('Filedata'=>'@/Users/finup/Documents/11.png');
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1); //POST提交
curl_setopt($ch, CURLOPT_POSTFIELDS,$curlPost);
$data =curl_exec($ch);
curl_close($ch);
echo '<pre>';
var_dump($data);
Array
(
[Filedata] => Array
(
[name] => 11.png
[type] => application/octet-stream
[tmp_name] => /private/var/tmp/php936cex
[error] => 0
[size] => 36663
)
)
想要了解更多關(guān)于PHP開發(fā)方面內(nèi)容的小伙伴,請關(guān)注扣丁學(xué)堂PHP培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育有專業(yè)的PHP講師為您指導(dǎo),此外扣丁學(xué)堂老師精心推出的PHP視頻教程定能讓你快速掌握PHP從入門到精通開發(fā)實戰(zhàn)技能??鄱W(xué)堂PHP技術(shù)交流群:374332265。
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】 【掃碼進入HTML5前端開發(fā)VIP免費公開課】