php使用curl模擬瀏覽器表單上傳文件以及圖片的方法
來源:不言
發(fā)布時(shí)間:2018-11-14 09:42:29
閱讀量:789
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于php使用curl模擬瀏覽器表單上傳文件以及圖片的方法,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。
前言
在瀏覽器使用html中的input框我們可以實(shí)現(xiàn)文件的上傳,表單元素選用 <input type="file"> 控件,form 表單需要設(shè)置 enctype="multipart/form-data" 屬性。比如:
1 2 3 4 5 6 7 8 9 10 11 | <body>
<form action= "UploadFile.php" method= "post" enctype= "multipart/form-data" >
<input type= "file" name= "fileUpload" />
<input type= "submit" value= "上傳文件" />
</form>
</body>
|
總有一些時(shí)候,我們需要在后臺(tái)直接上傳文件而不是用瀏覽器進(jìn)行前端上傳,這時(shí)候php的curl就提供了一些參數(shù)可以實(shí)現(xiàn)直接通過php后臺(tái)上傳文件。
php使用curl模擬上傳文件
curl上傳文件的時(shí)候,最重要的是一個(gè)“ @”符號的應(yīng)用,加@符號curl就會(huì)把它當(dāng)成是文件上傳處理。
具體代碼實(shí)例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php
header( 'Content-type:text/html; charset=utf-8' );
$ch = curl_init();
$url = 'https://xxx.com/api/mobile/auto_upload.php?uid=9705459' ;
$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);
curl_setopt( $ch , CURLOPT_POSTFIELDS, $curlPost );
$data =curl_exec( $ch );
curl_close( $ch );
echo '<pre>' ;
var_dump( $data );
|
上述代碼實(shí)例中的url是處理文件上傳的具體的接口,可以直接使用$_FILES來獲取上傳的臨時(shí)文件相關(guān)信息,打印出$_FILES如下,其中數(shù)組的鍵“Filedata”名可以在傳遞參數(shù)的時(shí)候自己指定:
1 2 3 4 5 6 7 8 9 10 11 12 | Array
(
[Filedata] => Array
(
[name] => 11.png
[type] => application/octet-stream
[tmp_name] => / private / var /tmp/php936cex
[error] => 0
[size] => 36663
)
)
|