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 に答える