1

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

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

我不确定问题是否在于 URL 实际上不是图像 URL(即 example.com/image.jpg)或 .html/.php URL,或者我只是做得不对. 我以前从未使用过 cURL,所以很可能我做得不对。

我将图像的路径保存到一个工作正常的 MySQL 数据库中。但是,图像实际上并未保存在指定的文件夹中。文件夹上的权限设置正确,所以我认为这不是权限问题。我也设置allow_url_fopen为打开只是为了确保。

我的代码如下。谁能指出我正确的方向?

$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);
4

2 回答 2

2

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

$img = "/users/images/".str_replace('/', '_', $url).".jpg";
于 2012-12-31T17:15:42.820 回答
0

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

请纠正,如果不是,它应该没问题。

于 2012-12-31T17:07:14.840 回答