當前位置:首頁 » 文件管理 » curl上傳圖片php

curl上傳圖片php

發布時間: 2025-04-02 17:28:08

『壹』 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問題做了系統而詳細的講解,請參考「十、模擬上傳文件」部分查看更多文件上傳內容,如直接基於採集的文件內容進行上傳等。

『貳』 php怎樣用curl發送post請求

使用 PHP 中的 cURL 函數來發送 POST 請求是一種常見的網路數據交互方式。下面分步驟說明如何進行。

首先,初始化 cURL 會話,使用 `curl_init()` 函數。

設置請求方式為 POST,使用 `curl_setopt()` 函數,參數 `CURLOPT_POST`。

要發送 POST 數據,使用 `curl_setopt()` 函數設置 `CURLOPT_POSTFIELDS` 參數,提供要發送的數據。

設置請求頭。例如,添加自定義頭,使用 `curl_setopt()` 函數,參數 `CURLOPT_HTTPHEADER`。

要添加帶有用戶名和密碼的 Authorization 請求頭,首先需要進行 Base64 編碼。示例如下:

設置代理伺服器,使用 `curl_setopt()` 函數,參數 `CURLOPT_PROXY`。

為了將響應內容保存到變數,而非直接輸出,使用 `curl_setopt()` 函數設置 `CURLOPT_RETURNTRANSFER` 參數為 true。

關閉請求,使用 `curl_exec()` 函數執行 cURL 會話,隨後使用 `curl_close()` 關閉會話。

執行簡單 GET 請求與 POST 請求的步驟類似,只需調整 `CURLOPT_POST` 參數。

獲取響應頭信息,使用 `curl_getinfo()` 函數,參數為 `curlINFO_HEADER_OUT`。

若請求導致重定向,`curl_getinfo()` 函數返回的 `curlINFO_REDIRECT_URL` 參數將提供重定向後的地址。

要獲取 Set-Cookie 信息,執行請求後,可以將 `curl_exec()` 的結果存入變數,然後解析響應頭或使用 `curl_getinfo()` 的 `curlINFO_COOKIELIST` 參數。

總結,通過以上步驟,可以靈活地利用 PHP cURL 函數實現 POST 請求,包括設置請求參數、頭信息、代理、獲取響應內容等操作,適用於多種網路交互場景。

『叄』 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:這是最重要的請求頭信息之一。

(3)curl上傳圖片php擴展閱讀:

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 curl用法

curl 是使用URL語法的傳送文件工具鍵則,支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL證書、HTTP POST、HTTP PUT 、FTP 上嫌亮橘傳,kerberos、芹團基於HTT格式的上傳、代理、cookie、用戶+口令證明、文件傳送恢復、http代理通道和大量其他有用的技巧。

『伍』 PHP curl 模擬表單數據流multipart/form-data上傳文件

在調用公眾號介面https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;

上傳永久素材文件總是返回 "{\"errcode\":41005,\"errmsg\":\"media data missing\"}"

經過多次測試使用下面的方式,可以正常上傳

//調用測試

protected static $url;

protected static $delimiter;

protected static $instance;

public function index()

{

        static::$delimiter = uniqid();

$basename = Request::instance()->root();

if (pathinfo($basename, PATHINFO_EXTENSION) == 'php') {

    $basename = dirname($basename);

}

        $result=$this->wxAddMaterial($token,$basename.'/upload/images/gnlog.jpg','image');

    }

// 新增其他類型永久素材

public function wxAddMaterial($token,$filename='',$type='') {

    // 設置請求參數

    static::$url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=".$token."&type=".$type;

    $filePath = str_replace('\\', '/', $filename);

    // 發送請求

    $imginfo=pathinfo($filePath);

    $fields = array(

        'media'=>file_get_contents(".".$filePath),

        'filename'=>$imginfo["basename"],

);

    $res = $this->putPart( $fields);

    // 發送請求

    return $res;

}

//推送文件流

public function putPart($param) {

    $post_data = static::buildData($param);

    $curl = curl_init(static::$url);

    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

    curl_setopt($curl, CURLOPT_POST, true);

    curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);

    curl_setopt($curl, CURLOPT_HTTPHEADER, [

        "Content-Type: multipart/form-data; boundary=" . static::$delimiter,

        "Content-Length: " . strlen($post_data)

]);

    $response = curl_exec($curl);

    curl_close($curl);

    return $response;

}

//編譯請求頭格式和數據流

private static function buildData($param){

    $data = '';

    $eol = "\r\n";

    $upload = $param['media'];

    unset($param['media']);

    foreach ($param as $name => $content) {

        $data .= "--" . static::$delimiter . "\r\n"

            . 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"

            . $content . "\r\n";

}

    $data .= "--" . static::$delimiter . $eol

        . 'Content-Disposition: form-data; name="media"; filename="' . $param['filename'] . '"' . "\r\n"

        . 'Content-Type:application/octet-stream'."\r\n\r\n";

    $data .= $upload . "\r\n";

    $data .= "--" . static::$delimiter . "--\r\n";

    return $data;

}

根據自己的實際情況稍作修改

『陸』 PHP如何開啟curl

開啟php curl函數庫的步驟
1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; /*用 echo phpinfo();查看php.ini的路徑*/
2).把php5/libeay32.dll,ssleay32.dll復制到系統目錄windows/下
3).重啟apache

配置php支持curl
curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理伺服器, cookies, 用戶名/密碼認證, 下載文件斷點續傳, 上載文件斷點續傳, http代理伺服器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理伺服器, 通過http代理伺服器上傳文件到FTP伺服器等等,功能十分強大。Windows操作系統下的網路螞蟻,網際快車(FlashGet)的功能它都可以做到。准確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統,用戶習慣稱curl為下載工具。
配置方法:
1、拷貝PHP目錄中的libeay32.dll 和 ssleay32.dll 兩個文件到 system32 目錄。
2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分號。
---------------------------
php下擴展php_curl.dll的安裝
---------------------------
已經內置有php_curl.dll,在ext目錄下,此DLL用於支持SSL和zlib.
在php.ini中找到有extension=php_curl.dll, 去掉前面的注釋.
設置extension_dir=c:phpext, 刷新PHP頁面時報錯, 說找不到模塊php_curl.dll.
拷貝php_curl.dll 到windowssystem32,還是同樣的錯.
在網上找了一下,需要將:
libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll
都拷貝到system32目錄下,重啟IIS即可.

『柒』 PHP里模擬Post提交是什麼意思

php
表單提交常見的就是post和get
模擬提交就是通過其他技術達到post或get的效果
php
常見的模擬就是curl方式了
作用比如說刷票
每次提交它可以模擬ip
逃過ip限制
圖片上傳
可以post提交
不用模擬

熱點內容
基岩版伺服器埠什麼協議 發布:2025-04-03 16:34:30 瀏覽:595
手機前端編程軟體 發布:2025-04-03 16:33:19 瀏覽:439
android很抱歉已停止運行 發布:2025-04-03 16:27:51 瀏覽:436
thinkphp四種url訪問方式詳解 發布:2025-04-03 16:21:51 瀏覽:763
密碼工程怎麼樣 發布:2025-04-03 16:11:00 瀏覽:659
股票認證密碼如何修改 發布:2025-04-03 16:10:49 瀏覽:530
迷你世界官方版密碼賬號是多少 發布:2025-04-03 16:10:48 瀏覽:544
單片機c語言計數器 發布:2025-04-03 16:09:13 瀏覽:352
17g緩存 發布:2025-04-03 16:07:17 瀏覽:377
超級直播內置伺服器地址 發布:2025-04-03 16:00:56 瀏覽:718