typecho如何使用php实现上传附件的功能?

作者站长头像
站长
· 阅读数 6

我已经使用$security->getIndex('/action/upload')得到上传接口了,想使用curl将图片上传到附件

$picUrl是图片地址,$uploadUrl是$security->getIndex的上传接口,都能正常得到想要的值

我感觉问题就出现在这个curl

    $picUrl = 'https://api.mmbkz.cn/ziyuan/ads.png';
    $picContent = file_get_contents($picUrl);
    
    Typecho_Widget::widget('Widget_Security')->to($security);
    $uploadUrl = $security->getIndex('/action/upload?cid='.$this->cid);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $uploadUrl);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $picContent);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    $HTTP = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    echo $HTTP.'<br>';
    echo $response.'<br>';
    echo $uploadUrl.'<br>';

为什么返回了状态码403?

我使用js的方式很容易上传图片附件,但是使用php却不行。

请问如何使用php,并搭配typecho的$security->getIndex('/action/upload')实现上传附件的功能呢

非常感谢!

希望有大佬帮忙解答!!

方便的话,可以创建一个ty页面模板,然后放上这些代码,你就会看到返回了403

回复
1个回答
avatar
test
2024-06-30

知道原因了,没有上传cookie,所以403

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容