0

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

また、ディレクトリがすでに作成されている場合、このコードは正常に機能します

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 に答える