0

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

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

如果已经创建了目录,则此代码可以正常工作

4

1 回答 1

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:')任何内容写入屏幕后通过调用。<?php所有这些处理都应该在将任何内容写入页面之前完成,例如回显、跳出 php 等。还要确保在开始行之前没有空格。

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

于 2012-09-01T04:59:45.520 回答