使用php从网页保存图像

时间:2012-12-31 17:05:10

标签: php curl

我知道我的问题与this question非常相似,我正在使用问题的答案作为我的解决方案,但我无法让它发挥作用。

我正在使用Immediatenet.com生成任何给定网址的缩略图(例如:google)。然后使用cURL将图像保存在我服务器上的文件夹中。

我不确定问题是否是因为URL实际上不是图像URL(例如example.com/image.jpg)或.html / .php URL或者我根本就不是做得对。我之前从未使用过cURL,所以很明显我可能做得不对。

我将图像的路径保存到MySQL数据库中,该数据库运行正常。但是,图像实际上并不保存在指定的文件夹中。权限是在文件夹上正确设置的,所以我认为这不是权限问题。我还将allow_url_fopen设置为On以确保。

我的代码如下。任何人都可以指出我正确的方向吗?

$url = $_POST['url'];
$url_new = 'http://immediatenet.com/t/m?Size=1024x768&URL='.$url;
$img = "/users/images/".$url.".jpg";
$ch = curl_init($url_new);
$fp = fopen($img, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);

2 个答案:

答案 0 :(得分:2)

如果$url包含正斜杠(与大多数URL一样),则这些将被视为$img路径名中的目录分隔符。您需要将斜杠替换为其他字符,或者创建所有必需的目录。

$img = "/users/images/".str_replace('/', '_', $url).".jpg";

答案 1 :(得分:0)

您确定$img = "/users/images/".$url.".jpg";有效吗? ..你的根目录中确实有一个用户文件夹吗?

请更正,如果没有,它应该没问题。