php先接收html传过来的图片,在上到第三方的完整代码。

代码编程 Loading... 阅读

就这个功能搞了有一个多小时,原因在于我不知道如何将接收到的图片在转给api。

各种方法都尝试过了,最后找到 new \CURLFile($filend) , 这个方法,测试了一下,终于可以 了。

代码:

<?php 
$file = $_FILES['file'];
$tmp = $_FILES['file']['tmp_name'];
$filend = '1.png';
move_uploaded_file($tmp, $filend);
$url = "https://pic.slhq.cn/api/upload";
$data = [ "file" => new\ CURLFile($filend), 
// "file"=> "@".str_replace("\\","/",realpath($filend)), 
"token" => "xxxxxxxxxxxxxxxxxxx" 
//授权token 
];
//post请求 
$res = post($url, $data);
// 删除本地该图片 
unlink($filend);
# 
// 返回图片链接 
// 已有格式,这边直接返回交给前端处理 
die($res);
/** * 发起POST请求 */
function post($url, $msg) {
	$curl = curl_init();
	curl_setopt($curl, CURLOPT_URL, $url);
	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
	curl_setopt($curl, CURLOPT_POST, 1);
	curl_setopt($curl, CURLOPT_HEADER, 0);
	curl_setopt($curl, CURLOPT_POSTFIELDS, $msg);
	curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:multipart/form-data']);
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	$res = curl_exec($curl);
	curl_close($curl);
	return $res;
}

为什么我要弄这个?

因为 zblog 挂载的时候总是出现 csf 错误,搞了一天多都没搞定。

最后,自己写一个中转api就行了,把 php 放在同一个文件下,总算没有了xss 风险了。

谷歌浏览器再也不拦截我了。

Tags:

版权声明:若无特殊注明,本文皆为《书蓝画青》原创,转载务必保留文章来源。

本文链接:php先接收html传过来的图片,在上到第三方的完整代码。 & https://boke.slhq.cn/2025.html

推荐阅读
发表评论 取消回复
表情 图片 链接 代码

分享