天天看点

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;
}