我正在运行此文件:
$file_name = "WEL_log_".date('Y_m');
$url = 'http://www.welserver.com/WEL0521/'.$file_name.'.xls';
$base_path = '/Applications/XAMPP/xamppfiles/htdocs/website/';
$tmp_path = $base_path.'tmp_'.$file_name.'.tsv';
$path = $base_path.$file_name.'.tsv';
$current_month_path = $base_path.'current_month.tsv';
$latest_path = $base_path.'latest.tsv';
function downloadFile ($url, $path) {
global $latest_path;
global $tmp_path;
global $current_month_path;
global $base_path;
$newfname = $tmp_path;
$file = fopen ($url, "rb");
if ($file) {
下面一行是编码中的第37行:
$newf = fopen ($newfname, "wb");
if ($newf){
while(!feof($file)) {
fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
}
}
}
if ($file) {
fclose($file);
}
if ($newf) {
copy($tmp_path, $current_month_path);
rename($tmp_path, $path);
fclose($newf);
write_latest_data($path, $latest_path);
}
}
function write_latest_data($read_file_path, $write_file_path, $no_of_new_lines=10){
$file = file($read_file_path);
$write_f = fopen ($write_file_path, "wb");
$line_count = count($file) > $no_of_new_lines ? $no_of_new_lines : count($file);
if ($write_f){
fwrite($write_f, $file[0], 1024 * 8 );
$file = array_reverse($file);
for($i=0; $i < $line_count; $i++){
fwrite($write_f, $file[$i], 1024 * 8 );
}
fclose($write_f);
}
并收到此警告
警告:fopen(/Applications/XAMPP/xamppfiles/htdocs/website/tmp_WEL_log_2013_08.tsv):无法打开流:第37行/Applications/XAMPP/xamppfiles/htdocs/website/download.php中的权限被拒绝
请告诉我,我做错了什么?
答案 0 :(得分:0)
错误消息表明文件无法打开以进行写入。检查您的基本路径中是否具有写入权限: /应用/ XAMPP / xamppfiles / htdocs中/网站/
您应该检查apache正在运行的用户和用户组。在大多数情况下,两者都是www数据。因此,webfoot中的文件应该分配用户和组www-data。如果用户和组都匹配权限755应该足够您的基本路径。如果只有小组匹配775应该没问题。如果没有匹配你必须设置777,但这不应该在实时系统上完成。