创建目录时的异常

时间:2012-09-01 04:53:42

标签: php directory

我是php的初学者。我的问题是,我使用以下代码创建一个目录并将一些文件复制到其中(我使用的代码来自于此)。代码工作正常创建目录并复制文件。但我收到这样的警告。

function copyr($source, $dest) 
{ 
    // Simple copy for a file 
    if (is_file($source)) {
        chmod($dest, 0777);
        return copy($source, $dest); 
    } 

    // Make destination directory 
    if (!is_dir($dest)) { 
        mkdir($dest); 
    }

    chmod($dest, 0777);

    // Loop through the folder 
    $dir = dir($source); 
    while (false !== $entry = $dir->read()) { 
        // Skip pointers 
        if ($entry == '.' || $entry == '..') { 
            continue; 
        } 

        // Deep copy directories 
        if ($dest !== "$source/$entry") { 
            copyr("$source/$entry", "$dest/$entry"); 
        } 
    } 

    // Clean up 
    $dir->close(); 
    return true; 
} 

copyr("agentSourcefolder", "testTemp5");

Warning: chmod() [function.chmod]: No such file or directory in /home/websiteName/public_html/php_file_upload2.php on line 9

在此之后我必须得到服务器的响应,我该怎么办?我用了

header("Location: http://www.websiteName.com/"); 

但它显示以下错误

Warning: Cannot modify header information - headers already sent by (output started at /home/websiteName/public_html/php_file_upload2.php:9) in /home/websiteName/public_html/php_file_upload2.php on line 41

如果目录已经创建,则此代码可以正常运行

1 个答案:

答案 0 :(得分:0)

这一个:

Warning: Cannot modify header information - headers already sent by (output started at /home/websiteName/public_html/php_file_upload2.php:9) in /home/websiteName/public_html/php_file_upload2.php on line 41

是因为在将任何内容写入屏幕后您正在传递header('location:')调用。所有这些处理都应该在将任何内容写入页面之前完成,例如echo,break of php等。还要确保在开始<?php行之前没有空格。

另一个错误可能是因为您尝试chmod的文件尚不存在或存在。或者您可能需要提供mkdir的绝对路径。比如$_SERVER['DOCUMENT_ROOT']."/path-to-new-dir/"