0

我有一个 php curl 脚本,它从指定的 url 下载图像。

使用 curl PHP 从 url 保存图像

function grabImage($url,  $saveto){
    $ch = curl_init ($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
    $raw=curl_exec($ch);
    curl_close ($ch);
    if(file_exists($saveto)){
        unlink($saveto);
    }
    $fp = fopen($saveto,'x');
    fwrite($fp, $raw);
    fclose($fp);
}

grabImage("www.example.com/image/2.png", "/var/www/site/images/image_2.png")

当有人访问我的网站时,会从我的服务器下载图像,但是如果图像不可用,它将使用 curl 从我的供应商服务器下载它,我宁愿直接从我的服务器下载所有图像,因为我不想放任何图像我的供应商服务器压力很大。

该脚本在 ssh 中运行时运行良好,例如/usr/bin/php /var/www/site/image_s.php,但在浏览器中加载时它不会下载图像。例如www.example.com/image_s.php

我需要做些什么来确保浏览器负载足以下载图像?

4

2 回答 2

0

我在网上做了一些搜索,结果发现您需要更改文件夹权限,默认情况下公众无法写入文件夹。

在linux中,您可以通过执行以下操作来更改权限

chmod 666 /var/www/site/folder_name

于 2013-04-15T16:35:45.273 回答
0

看起来像 Web 服务器权限错误,当您在控制台上运行它时,您正在以您登录的用户身份运行。这与提供网站内容的用户不同(可能是“没人”)

于 2013-04-15T15:38:28.793 回答