从php(&;wordpress)中的url上载图像时出错

从php(&;wordpress)中的url上载图像时出错,php,wordpress,url,plugins,download,Php,Wordpress,Url,Plugins,Download,我为wordpress开发了一个插件,可以从URL下载图片来创建一篇文章 在大多数情况下,图片是下载和文章发布的,但出于好奇的原因,有时候图片不是下载的 具体地说,文件损坏是在下载时没有声明错误的。(如下载在等待过程中被剪切) 具体例子: 看看这个链接。您可以使用浏览器毫无问题地查看此图像。 但是我的插件不能下载这个文件。您可以使用此网站进行测试: 尝试将此图像上载到此网站,您将出现错误。但为什么?!?图像可以在浏览器中打开!我疯了,你有办法吗?我不知道我可以在网上搜索什么来找到解决方案 谢谢

我为wordpress开发了一个插件,可以从URL下载图片来创建一篇文章

在大多数情况下,图片是下载和文章发布的,但出于好奇的原因,有时候图片不是下载的

具体地说,文件损坏是在下载时没有声明错误的。(如下载在等待过程中被剪切)

具体例子:

看看这个链接。您可以使用浏览器毫无问题地查看此图像。 但是我的插件不能下载这个文件。您可以使用此网站进行测试: 尝试将此图像上载到此网站,您将出现错误。但为什么?!?图像可以在浏览器中打开!我疯了,你有办法吗?我不知道我可以在网上搜索什么来找到解决方案


谢谢你使用curl,我下载这张图片没有任何问题:

$ch = curl_init('http://static.lexpress.fr/medias_10713/w_1624,h_1219,c_crop,x_345,y_113/w_605,h_350,c_fill,g_north/v1450339163/marine-le-pen-france-s-national-front-political-party-head-checks-notes-on-her-mobile-phone-after-leaving-her-polling-station-during-the-european-parliament-election-in-henin-beaumont_5485394.jpg');
$fp = fopen('./test.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

我猜您使用的是
file\u get\u contents
。通过curl下载图片二进制文件似乎绕过了限制。

使用curl下载此图片时没有任何问题:

$ch = curl_init('http://static.lexpress.fr/medias_10713/w_1624,h_1219,c_crop,x_345,y_113/w_605,h_350,c_fill,g_north/v1450339163/marine-le-pen-france-s-national-front-political-party-head-checks-notes-on-her-mobile-phone-after-leaving-her-polling-station-during-the-european-parliament-election-in-henin-beaumont_5485394.jpg');
$fp = fopen('./test.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);

我猜您使用的是
file\u get\u contents
。通过curl下载图片二进制文件似乎绕过了这些限制。

非常感谢您,Vard,它工作得很好

但我为其他人提供了一些信息:一些服务器不活动CURL,所以在使用此黑客之前必须检查它

检查代码:

  if (!is_callable('curl_init')) {
        error_log("Curl no exist, request impossible..", 3, plugin_dir_path(__FILE__)."../logs/error.log");
        header("HTTP/1.0 501 Not Implemented");
        exit("Curl request impossible for wordpress server");
    }
enter code here

Grand Merci Vard(很抱歉,我没有足够的理由对你的回答投赞成票,但你太好了)

非常感谢你,Vard,这很有效

但我为其他人提供了一些信息:一些服务器不活动CURL,所以在使用此黑客之前必须检查它

检查代码:

  if (!is_callable('curl_init')) {
        error_log("Curl no exist, request impossible..", 3, plugin_dir_path(__FILE__)."../logs/error.log");
        header("HTTP/1.0 501 Not Implemented");
        exit("Curl request impossible for wordpress server");
    }
enter code here

Grand Merci Vard(对不起,我没有足够的理由对您的回答投赞成票,但您太好了)

通过HTTP显示图像和通过其他服务器下载图像是两回事。您可以允许一个,但阻止另一个。我怀疑l'express网站阻止下载他们的照片。PS:找不到更好的图像作为示例-(嗨,谢谢你的回复。很抱歉我的英语不好。是的,对于屏蔽网站(express),我也这么认为,但我必须找到一个解决这个问题的方法。你知道一些关于屏蔽图片url(谷歌搜索的关键词)的事吗?这篇文章是针对这个政治人物的(这篇文章说,“Marine Lepen”已经发送了Daesh视频barbar和她被判入狱40年:)谢谢vardJust回复你,看来CURL很适合这个。我知道我是法国人,所以我知道这一点,只是我厌倦了在任何地方看到他的脸:-)但我有点离题了。通过HTTP显示图像和通过其他服务器下载图像是两件不同的事情。您可以允许一个,但阻止另一个。我怀疑l'express网站阻止下载他们的照片。PS:找不到更好的图像作为示例-(嗨,谢谢你的回复。很抱歉我的英语不好。是的,对于屏蔽网站(express),我也这么认为,但我必须找到一个解决这个问题的方法。你知道一些关于屏蔽图片url(谷歌搜索的关键词)的事吗?这篇文章是针对这个政治人物的(这篇文章说,“Marine Lepen”已经发送了Daesh视频barbar和她被判入狱40年:)谢谢vardJust回复你,看来CURL很适合这个。我知道我是法国人,所以我知道这一点,只是我厌倦了在任何地方看到他的脸:-)但我有点离题了。