2014-12-30 82 views
1

我的脚本除了代码中的网址之外运行良好。我总是得到404。当然,我可以从浏览器中获取图像。有谁能帮我解决这个问题吗? PS:其实,我可以使用方法int“questions/6476212”来获取图像文件。但是当试图打开图像文件时,文件中的内容是一个404页面而不是图像。如何从卷曲中获取图像

$url = 'https://spthumbnails.5min.com/10368406/518420256_c_570_411.jpg'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11'); 
$res = curl_exec($ch); 
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch) ; 
echo $res;" 
+0

服务器是否使用cookie验证请求? –

+0

您是否尝试过添加: curl_setopt($ ch,CURLOPT_BINARYTRANSFER,1); ,因为JPG文件传输应该在二进制模式下完成? – GiantRobot

+0

我不知道那个:(如何检查cookie? – weblen

回答

6

您的脚本被正确书写。我试过并且工作正常,但您需要设置图像标题才能让导航器显示图像。

例子:

header("Content-Type: image/jpeg"); 

$url = 'https://images.nga.gov/en/web_images/constable.jpg'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.1 Safari/537.11'); 
$res = curl_exec($ch); 
$rescode = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
curl_close($ch) ; 
echo $res; 

但请注意您的图片网址下来,这就是为什么你得到404错误。

Regards

+0

down?尝试自己并在浏览器中打开,url ok。 – Eugen

+0

真的吗?但是我可以从浏览器中获取图片 – weblen

+0

是Eugen,已经尝试过,我有这个错误消息“页面无法显示” – manuelbcd