當前位置:首頁 » 編程語言 » curlpost文件php

curlpost文件php

發布時間: 2023-05-13 17:25:02

『壹』 php curl post 上傳文件 接收文件 $_FILES 為空 是伺服器配置問題嗎還是什麼原因

原因找到了。就是$data['img']="@/tmp/1.jpg";這句話

一定要用絕對路徑。

$ch=curl_init();

define('_ROOT',str_replace("\",'/',dirname(__FILE__)));
$data['img']="@"._ROOT."/tmp/1.jpg";
curl_setopt($ch,CURLOPT_URL,"http://www.biubiu.com/huahua.php");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
$result=curl_exec($ch);
curl_close($ch);
echo$result;

『貳』 PHP相關:用CURL POST文件後,接收頁面只有$_POST數據,$_FILES為空

'file' => @'E:/WEB/PHP/tools/grab/qie.jpg'改為
'file' =>'@E:/WEB/PHP/tools/grab/qie.jpg' 試試

『叄』 php,用curl寫個post登陸並取回cookies的代碼

要在文件中保存COOKIE的信息,你的curl_setopt($ch, CURLOPT_COOKIEJAR,$cookie_file);中的$cookie_file必須是要保存cookie信息的文件名,最最關鍵的一點,這個文件名是必須要帶絕對路徑,否則是不行的,如果文件帶上絕對路徑的話,會在文件中以Netscape格式保存所有的cookie信息。
還有一個需要說明的,COOKIE必須指定有效期,如果沒有指定有效期的話,默認的瀏覽器關閉COOKIE就失效。這種COOKIE信息在內存中存放,不會寫入硬碟的。
這兩個方面你都需要考慮。用絕對路徑,保存一個長效的COOKIE,肯定可以成功!

『肆』 php使用curl的post方法字元串和數組傳值的區別

在PHP手冊的curl_setopt函數中,關於CURLOPT_POSTFIELDS有如下描述:
全部數據使用HTTP協議中的"POST"操作來發送。
要發送文件,在文件名前面加上@前綴並使用完整路徑。(5.5+建議用CURLFile)
這個參數可以通過urlencoded後的字元串類似'para1=val1&para2=val2&...'
或使用一個以欄位名為鍵值,欄位數據為值的數組。
如果value是一個數組,Content-Type頭將會被設置成multipart/form-data。

因此,這兩種傳值方式是有所區別的。

當然,可以通過CURLOPT_HTTPHEADER指定Content-Type。

更多PHPcURL內容,請參考我的博客《PHPcURL實現模擬登錄與採集使用方法詳解教程》

『伍』 php Curl的get和post方法

get方法

function http_get($url)

{

    $oCurl = curl_init();

    if (stripos($url, "https://") !== FALSE) {

        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);

        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);

        //curl_setopt($oCurl, CURLOPT_SSLVERSION, 1);

        //CURL_SSLVERSION_TLSv1

    }

    curl_setopt($oCurl, CURLOPT_URL, $url);

    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);

    $sContent = curl_exec($oCurl);

    $aStatus = curl_getinfo($oCurl);

    curl_close($oCurl);

    if (intval($aStatus["http_code"]) == 200) {

        return $sContent;

    } else {

        return false;

    }

}

post方法

    // curlpost請求

    function http_post($url, $data = NULL, $json = false)

    {

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_URL, $url);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

        if (!empty($data)) {

            if ($json && is_array($data)) {

                $data = json_encode($data);

            }

            curl_setopt($curl, CURLOPT_POST, 1);

            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

            if ($json) { //發送JSON數據

                curl_setopt($curl, CURLOPT_HEADER, 0);

                curl_setopt(

                    $curl,

                    CURLOPT_HTTPHEADER,

                    array(

                        'Content-Type: application/json; charset=utf-8',

                        'Content-Length:' . strlen($data)

                    )

                );

            }

        }

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        $res = curl_exec($curl);

        $errorno = curl_errno($curl);

        if ($errorno) {

            return array('errorno' => false, 'errmsg' => $errorno);

        }

        curl_close($curl);

        return json_decode($res, true);

    }

『陸』 修改php代碼使用curl實現POST

POST提交是要瀏覽器提交客戶端才能有效果,伺服器上使用CURL提交後,瀏覽器使用者看不見任何效果的。

對於現在的架構,我認為應該PHP輸出js代碼POST提交,例如:

header("location:$fileurl");

語句修改為:

echo<<<END
<formname=form1method=postaction=play.php>
<inputtype=hiddenname=fileurlvalue='$fileurl'>
</form>
<javascriptlanguage=javascript>
form1.submit();
</javascript>
END;
熱點內容
idlj編譯idl文件 發布:2025-07-18 02:14:47 瀏覽:351
國外代理伺服器ip地址和埠 發布:2025-07-18 02:12:44 瀏覽:719
將個人電腦改雲桌面伺服器 發布:2025-07-18 02:12:31 瀏覽:757
加密機進程 發布:2025-07-18 02:08:34 瀏覽:241
光遇源碼 發布:2025-07-18 01:36:52 瀏覽:609
一克拉演算法 發布:2025-07-18 01:36:16 瀏覽:881
sql的標准 發布:2025-07-18 01:31:19 瀏覽:418
za解壓怎麼用 發布:2025-07-18 01:15:43 瀏覽:39
勒索加密文件恢復 發布:2025-07-18 01:15:37 瀏覽:159
更換雲伺服器廠商需要遷移域名 發布:2025-07-18 01:14:54 瀏覽:906