導航:首頁 > 文件教程 > phpcurl發送文件

phpcurl發送文件

發布時間:2023-09-09 13:11:08

1. 如何使用php+curl上傳多媒體文件

$post_data = array(
"media"=>"E:\WORKS/yy.jpg"
);
$url="http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=$acctoken&type=image";
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post_data);
ob_start();
curl_exec($ch);
$result = ob_get_contents() ;
ob_end_clean();

echo $result;

2. php curl 上傳多文件,怎麼弄

下面是一段示例代碼

<?php
//註:PHP5.5.0起,文件上傳建議使用CURLFile代替@
//多文件上傳
$data=array(
'input_file[0]'=>newCURLFile('d:/1.txt','text/plain','testfile.txt'),
'input_file[1]'=>newCURLFile('d:/2.txt','text/plain'),
'input_file[2]'=>newCURLFile('d:/3.txt','text/plain'),
);
$ch=curl_init('http://demo.zjmainstay.cn/php/curl/curlUploadHandler.php');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_exec($ch);

如果你的版本比較低,文件部分使用:

'input_file[0]'=>'@d:/1.txt',

這樣既可。


我的博客《PHP cURL實現模擬登錄與採集使用方法詳解》對各類curl問題做了系統而詳細的講解,請參考「十、模擬上傳文件」部分查看更多文件上傳內容,如直接基於採集的文件內容進行上傳等。

3. 請教用Curl 在php 裡面模擬表單提交 文本+文件的寫法


publicfunctioncurl($url,$postFields=null)
{
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FAILONERROR,false);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
if($this->readTimeout){
curl_setopt($ch,CURLOPT_TIMEOUT,$this->readTimeout);
}
if($this->connectTimeout){
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$this->connectTimeout);
}
//https請求
if(strlen($url)>5&&strtolower(substr($url,0,5))=="https"){
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
}

if(is_array($postFields)&&0<count($postFields))
{
$postBodyString="";
$postMultipart=false;
foreach($postFieldsas$k=>$v)
{
if("@"!=substr($v,0,1))//判斷是不是文件上傳
{
$postBodyString.="$k=".urlencode($v)."&";
}
else//文件上傳用multipart/form-data,否則用www-form-urlencoded
{
$postMultipart=true;
}
}
unset($k,$v);
curl_setopt($ch,CURLOPT_POST,true);
if($postMultipart)
{
foreach($postFieldsas$k=>$v){
if("@"==substr($v,0,1)){
$tempffile=preg_replace('/^@/','',$v);
$advfield[$k]=newCURLFile($tempffile);
}else{
$advfield[$k]=$v;
}
}

curl_setopt($ch,CURLOPT_POSTFIELDS,$advfield);
unset($k,$v,$advfield);
//curl_setopt($ch,CURLOPT_POSTFIELDS,$postFields);//田村改
//curl_setopt($ch,CURLOPT_POSTFIELDS,['file'=>newCURLFile(realpath('image.png'))]);
}
else
{
curl_setopt($ch,CURLOPT_POSTFIELDS,substr($postBodyString,0,-1));
}
}
$reponse=curl_exec($ch);

if(curl_errno($ch))
{
thrownewException(curl_error($ch),0);
}
else
{
$httpStatusCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);
if(200!==$httpStatusCode)
{
thrownewException($reponse,$httpStatusCode);
}
}
curl_close($ch);
return$reponse;
}

表單列表是 $postFields 傳入參數

數組,如果有文件 ,就在數組的值 前面加@

已經做好的 集成類 的實現 其他類欄位和方法沒給出,寫不下了。

但是大致的實現過程應該可以看懂了

4. PHP curl 上傳大文件非常大慢,導致超時,小文件(10M以下)的還可以,請問如何解決啊!

修改超時限制:
ini_set('max_execution_time','0');

閱讀全文

與phpcurl發送文件相關的資料

熱點內容
jsxmlhttppost 瀏覽:614
w8如何取消密碼設置密碼 瀏覽:911
nmap文件轉換成excel 瀏覽:351
正在等待後台程序關閉 瀏覽:740
linux網卡rx 瀏覽:897
游戲是用什麼編程軟體做出來的 瀏覽:629
c語言將通訊錄文件導入管理系統 瀏覽:828
cad文件圖標變成白板如何恢復 瀏覽:190
貴州遵義開發票下載什麼網站 瀏覽:496
如何獲取美團的銷售數據 瀏覽:575
大數據建模的方法有哪些 瀏覽:958
分公司工商年報如何填寫財務數據 瀏覽:286
蘋果北京維修點地址 瀏覽:928
app原型圖是什麼東西 瀏覽:237
ug直接用cad文件建模 瀏覽:272
蘋果電腦打開mp4文件 瀏覽:337
數據線一直發燙怎麼回事 瀏覽:830
IBM代碼5 瀏覽:279
編程時如何讓輸出結果之間有空格 瀏覽:112
怎麼復制網上文件 瀏覽:675

友情鏈接