❶ php curl 上傳大文件非常大慢,導致超時,小文件(10M以下)的還可以,請問如何解決啊!
修改超時限制:
ini_set('max_execution_time','0');
❷ 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問題做了系統而詳細的講解,請參考「十、模擬上傳文件」部分查看更多文件上傳內容,如直接基於採集的文件內容進行上傳等。
java中使用curl命令上傳文件的使用方式如下:
curl -F "filename=@/home/test/file.tar.gz" http://localhost/action.php
如果使用了-F參數,curl就會以 multipart/form-data 的方式發送POST請求。-F參數以name=value的方式來指定參數內容,如果值是一個文件,則需要以name=@file的方式來指定。如果通過代理,上面的命令有可能會被代理拒絕,這時需要指定上傳文件的MIME類型 curl -x myproxy.com:1080 -F "filename=@/home/test/file.tar.gz;type=application/octet-stream" http://localhost/action.php
另外,如果不上傳文件,則可以使用 -d 參數,這時curl會以application/x-www-url-encoded 方式發送 POST 請求。
url -d "action=del&name=archer" -d "id=12" http://localhost/action.php
❹ PHP CURL 如何將一個網路圖片上傳至伺服器
/*
*@通過curl方式獲取指定的圖片到本地
*@ 完整的圖片地址
*@ 要存儲的文件名
*/
function getImg($url = "", $filename = "")
{
//去除URL連接上面可能的引號
//$url = preg_replace( '/(?:^['"]+|['"/]+$)/', '', $url );
$hander = curl_init();
$fp = fopen($filename,'wb');
curl_setopt($hander,CURLOPT_URL,$url);
curl_setopt($hander,CURLOPT_FILE,$fp);
curl_setopt($hander,CURLOPT_HEADER,0);
curl_setopt($hander,CURLOPT_FOLLOWLOCATION,1);
//curl_setopt($hander,CURLOPT_RETURNTRANSFER,false);//以數據流的方式返回數據,當為false是直接顯示出來
curl_setopt($hander,CURLOPT_TIMEOUT,60);
curl_exec($hander);
curl_close($hander);
fclose($fp);
Return true;
}
調用時,直接getImg("/logo.jpg","upload/image.jpg")
❺ php curl中CURLOPT_HTTPHEADER 這個參數的含義
php curl中CURLOPT_HTTPHEADER 這個參數的含義是:CURLOPT_HTTPHEADER 一個用來設置HTTP頭欄位的數組。Content-Type 表示後面的文檔屬於什麼MIME類型。charset表示瀏覽器可接受的字元集。
HTTP頭Servlet默認為text/plain,但通常需要顯式地指定為text/html。由於經常要設置Content-Type,因此HttpServletResponse提供了一個專用的方法setContentType。
HTTP請求頭的部分類型:
1、Accept:瀏覽器可接受的MIME類型。
2、Accept-Charset:瀏覽器可接受的字元集。
3、Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。Servlet能夠向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。許多情形下這可以減少5到10倍的下載時間。
4、Connection:表示是否需要持久連接。如果Servlet看到這里的值為「Keep-Alive」,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接),它就可以利用持久連接的優點,當頁麵包含多個元素時(例如Applet,圖片),顯著地減少下載所需要的時間。
5、Content-Length:表示請求消息正文的長度。
6、Cookie:這是最重要的請求頭信息之一。
(5)phpcurl上傳圖片擴展閱讀:
PHP中的CURL函數庫(部分):
1、curl_setopt_array — 為cURL傳輸會話批量設置選項
2、curl_setopt — 設置一個cURL傳輸選項
3、curl_close — 關閉一個cURL會話
4、curl__handle — 復制一個cURL句柄和它的所有選項
5、curl_errno — 返回最後一次的錯誤號
6、curl_error — 返回一個保護當前會話最近一次錯誤的字元串
7、curl_escape — 使用 URL 編碼給定的字元串
在實際的使用當中,使用得最多的函數是curl_setopt — 設置一個cURL傳輸選項說明:bool curl_setopt ( resource $ch , int $option , mixed $value )其中,ch 由 curl_init() 返回的 cURL 句柄。option 表示的是需要設置的CURLOPT_XXX選項。
option的可選參數:
1、CURLOPT_BUFFERSIZE 每次獲取的數據中讀入緩存的大小,但是不保證這個值每次都會被填滿。在cURL 7.10中被加入。
2、CURLOPT_CLOSEPOLICY 不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,還存在另外三個CURLCLOSEPOLICY_,但是cURL暫時還不支持。
3、CURLOPT_CONNECTTIMEOUT 在發起連接前等待的時間,如果設置為0,則無限等待。
❻ php如何不通過提交表單的方式向伺服器上傳圖片
action直接空,直接用submit按鈕,點擊不就提交到當前頁面了額,<input id="submit1" name="submit1" type="button">你這個地方幹嘛用button,用submit按鈕額
❼ 如何使用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;
❽ php curl 上傳多文件,怎麼弄
下面是一段示例代碼:
<?php
// 註: PHP 5.5.0起,文件上傳建議使用CURLFile代替@
// 多文件上傳
$data = array(
'input_file[0]' => new CURLFile('d:/1.txt', 'text/plain', 'testfile.txt'),
'input_file[1]' => new CURLFile('d:/2.txt', 'text/plain'),
'input_file[2]' => new CURLFile('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如何同時提交base64格式的圖片和文本數據給介面
推薦用Snoopy。
https://github.com/uniqid/Snoopy
僅供參考。
❿ php 怎麼接收curl上傳文件
如果模擬沒有出錯的話,應該也是使用$_FILES接收上傳的文件。
請參考我的博客《PHPcURL實現模擬登錄與採集使用方法詳解教程》
十、模擬上傳文件