如何通过wp_Remote_POST发送文件?

时间:2017-06-01 作者:Trungthanh.hust

我不想在我的WordPress插件中使用cURL嗨,cURL在WordPress网站上使用是不安全的。有时,cURL在客户托管上被禁用。

我决定使用wp\\u remote\\u post为我的插件发送文件,这里是我的代码:

$service = URL SERVICE ;

 $headers = array(
            \'accept\'       => \'application/json\', // The API returns JSON
            \'content-type\' => \'application/binary\', // Set content type to binary
        );


$data     = array(
                \'headers\'  => $headers,
                \'body\'     => file_get_contents($image_file),
            );
$response = wp_remote_post($service, $data);
但在服务器上,我无法从wp\\u remote\\u post接收文件。请帮助我解决此问题?如何配置以从wp\\u remote\\u post发送与CURLFile相同的文件?

1 个回复
最合适的回答,由SO网友:Trungthanh.hust 整理而成

我找到了这个问题的解决方案,我使用wp\\u remote\\u post将文件的二进制文件发送到服务器。

在处理服务器上接收的数据时,我使用此代码获取文件的数据

$file = file_get_contents(\'php://input\');
然后我将其写入临时文件

$temp   = tmpfile();
fwrite($temp, $file);
$metadata = stream_get_meta_data($temp);
你还有其他解决办法吗?请与我讨论以找到最佳答案。

结束

相关推荐

重新使用经过身份验证的HTTP连接或cURL句柄

我们有一个定制的Wordpress插件,它在编辑贴子页面中添加了一个元框。该插件从半私有HTTP REST API访问数据。连接经过身份验证(摘要)并定期访问-每个写帖子的人都会与它进行多次互动(通常是密集爆发),这样的人超过100人。因此,我们希望确保HTTP调用有效地工作。我们看到两个问题:没有证据表明Keep-Alive被用来阻止TCP套接字不断打开和关闭</对于摘要身份验证,每个请求都会执行两次。由于插件是经过身份验证的(不是用户),这是99%以上的浪费。Apache为此调用了他们的解决方案