图片和文件上传到其他服务器上面导致的上传不上去
- 要求图片上传类型

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

被折叠的 条评论
为什么被折叠?



