php使用curl模擬瀏覽器表單上傳文件或者圖片的方法
前言
在瀏覽器使用html中的input框我們可以實現(xiàn)文件的上傳,表單元素選用 <input type="file"> 控件,form 表單需要設(shè)置 enctype="multipart/form-data" 屬性。比如:
<body> <form action="UploadFile.php" method="post" enctype="multipart/form-data"> <input type="file" name="fileUpload" /> <input type="submit" value="上傳文件" /> </form> </body>
總有一些時候,我們需要在后臺直接上傳文件而不是用瀏覽器進行前端上傳,這時候php的curl就提供了一些參數(shù)可以實現(xiàn)直接通過php后臺上傳文件。
php使用curl模擬上傳文件
curl上傳文件的時候,最重要的是一個“ @”符號的應(yīng)用,加@符號curl就會把它當(dāng)成是文件上傳處理。
具體代碼實例:
<?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就會認(rèn)為是有文件上傳
$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);
上述代碼實例中的url是處理文件上傳的具體的接口,可以直接使用$_FILES來獲取上傳的臨時文件相關(guān)信息,打印出$_FILES如下,其中數(shù)組的鍵“Filedata”名可以在傳遞參數(shù)的時候自己指定:
Array ( [Filedata] => Array ( [name] => 11.png [type] => application/octet-stream [tmp_name] => /private/var/tmp/php936cex [error] => 0 [size] => 36663 ) )
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在laravel框架中實現(xiàn)封裝公共方法全局調(diào)用
今天小編就為大家分享一篇在laravel框架中實現(xiàn)封裝公共方法全局調(diào)用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
PHP編實現(xiàn)程動態(tài)圖像的創(chuàng)建代碼
只要安裝一些第三方的庫文件并具有一定的幾何知識,就可以利用PHP來創(chuàng)建和處理圖像了。利用PHP創(chuàng)建動態(tài)圖像是相當(dāng)容易的一件事情。下面,筆者將詳細(xì)介紹如何實現(xiàn)。2008-09-09
Zend Framework框架中實現(xiàn)Ajax的方法示例
這篇文章主要介紹了Zend Framework框架中實現(xiàn)Ajax的方法,結(jié)合實例形式詳細(xì)分析了Zend Framework框架中實現(xiàn)ajax功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
Zend Framework過濾器Zend_Filter用法詳解
這篇文章主要介紹了Zend Framework過濾器Zend_Filter用法,結(jié)合實例形式分析了過濾器Zend_Filter的功能、原理、使用方法及相關(guān)注意事項,需要的朋友可以參考下2016-12-12

