上传图片到别的服务器上,图片不存在的问题

本文介绍了解决图片上传至服务器失败的问题,通过设置表单提交类型为multipart/form-data,并使用PHP函数apiimg和fileimg拼接文件流,实现跨服务器图片上传。

图片和文件上传到其他服务器上面导致的上传不上去


  • 要求图片上传类型

在这里插入图片描述

  • 表单提交加 enctype=“multipart/form-data”
  • 如果后台数据提交那么就需要拼接一个文件流去了
function apiimg($url,$param){	
	  $curl = curl_init($url);
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST, true);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $param);
      curl_setopt($curl, CURLOPT_HTTPHEADER, [
          "Content-Type: multipart/form-data; boundary=" . uniqid(),
          "Content-Length: " . strlen($param)
      ]);     
 	$response = curl_exec($curl);
 	if (curl_getinfo($curl, CURLINFO_HTTP_CODE) == '200') {
          $strArr = preg_replace('/\s\\\"/','', $response);
     }
     var_dump($strArr);
}

*拼接文件流

function fileimg($param){
		$data = '';
        $upload = $param['image'];
        unset($param['image']);

        foreach ($param as $name => $content) {
            $data .= "--" . uniqid() . "\r\n"
                . 'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n"
                . $content . "\r\n";
        }
        $data .= "--" . uniqid() . "\r\n"
            . 'Content-Disposition: form-data; name="image"; filename="' . $param['filename'] . '"' . "\r\n"
            . 'Content-Type:application/octet-stream'."\r\n\r\n";

        $data .= $upload . "\r\n";
        $data .= "--" . uniqid() . "--\r\n";
        return $data;

}
$fields = array(
    'auth_type'=>'',
    'filename' => '1.png',
    'account'=>'',
    'password'=>'',
    'webinar_id'=>'',
    'image'=>file_get_contents('1.jpg')
);
$str = fileimg($fields);
apiimg("www.xxxx.cn",$str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值