需求是需要下载远程文件到本地,下面是下载的函数。在我下载图片或文本类型时fopen可以顺利执行。当下载的资源为视频或音频则提示failed to open stream: Permission denied
,需要将文件权限设置为755才行。应该怎么解决这个问题?
function download_remote_file($url , $ext, $path = '/public/download/')
{
$ch = curl_init();
curl_setopt($ch , CURLOPT_URL , $url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER , 1);
curl_setopt($ch , CURLOPT_CONNECTTIMEOUT , 30);
$file = curl_exec($ch);
curl_close($ch);
$fileSource = pathinfo($url);
if (empty($fileSource['extension'])) {
$filename = $fileSource['filename'] . '.' . $ext;
} else {
$filename = $fileSource['basename'];
}
$resource = fopen($path . $filename , 'a');
fwrite($resource , $file);
fclose($resource);
return $filename;
}
那就改权限呗
sudo chmod -R 755 /public/download/