在download.php文件中收到警告

时间:2013-08-18 20:18:35

标签: php jquery ajax

我正在运行此文件:

 $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中的权限被拒绝

请告诉我,我做错了什么?

1 个答案:

答案 0 :(得分:0)

错误消息表明文件无法打开以进行写入。检查您的基本路径中是否具有写入权限: /应用/ XAMPP / xamppfiles / htdocs中/网站/

您应该检查apache正在运行的用户和用户组。在大多数情况下,两者都是www数据。因此,webfoot中的文件应该分配用户和组www-data。如果用户和组都匹配权限755应该足够您的基本路径。如果只有小组匹配775应该没问题。如果没有匹配你必须设置777,但这不应该在实时系统上完成。