我有一个php curl脚本,可以从指定的URL下载图像。
Save image from url with curl PHP
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
我需要做些什么来确保浏览器加载足以下载图像?
答案 0 :(得分:0)
看起来像是Web服务器权限错误,当您在控制台上运行它时,您正在以您登录的用户身份运行。这与提供网站内容的用户不同(可能是'没人')
答案 1 :(得分:0)
我在网上搜索了一些内容,结果发现你需要更改文件夹权限,默认情况下公众无法写入文件夹。
在Linux中,您可以通过执行以下操作来更改权限 chmod 666 /var/www/site/folder_name