天天看點

php模拟post方法上傳圖檔并送出資料

項目需要,需要将自己的圖檔送出的第三方圖床上去,以便于節約伺服器資源。這裡需要使用php模拟表單使用post方式進行資料送出,具體代碼如下
//$filename 檔案位址全路徑,我這裡使用的是本地圖檔
function newPost($filename){
    $ch = curl_init();
    $curl_file = curl_file_create($filename, mime_content_type($filename), pathinfo($filename,PATHINFO_BASENAME));
    //送出需要攜帶的資料,file對應圖檔資源,
    $postData = [
        'data' => 'yourdata',
        'pload'=>$curl_file,
    ];

	//這裡是上傳的位址
    curl_setopt($ch, CURLOPT_URL, 'http://www.host2.com/upload.php');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($ch, CURLOPT_TIMEOUT, 100);
    curl_setopt($ch, CURLOPT_HEADER,0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    $res        = curl_exec($ch);
    curl_close($ch);

    return $res;
}