3

これは、すべてのディレクトリにファイルをアップロードするスクリプトです。しかし、私がそれを実行すると、アップロードは1回だけで、その後アップロードに失敗します。このコードで何が問題なのですか?

function read_directory($p_pathname)
{
$d = dir ($p_pathname);
$target = $p_pathname; 
if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target.$_FILES['uploaded']['name'])) 
{
    echo $target. "Done<br>";
} 
else 
{
    echo $target."Sorry<br>";
}
while (($file = $d->read()) !== false)
{
    if (($file != ".") and ($file != ".."))
    {
        $filetype = filetype ("{$d->path}/{$file}");

        if ($filetype == "dir")
        {
            read_directory ("{$d->path}/{$file}");
        }
        else
        {
            // echo "\tFILE: {$d->path}/{$file}\n";
        }
    }
}
$d->close;
}
4

2 に答える 2

1

copy()の代わりに使用しmove_uploaded_file()ます。move_uploaded_file()完了時にソース ファイルを削除するため、同じファイルに対して複数回使用することはできません。copy()は元のファイルをそのままにしておくので、何度でも実行できます。

スクリプトが終了すると、アップロードされた一時ファイルがスクリプトによって移動されない場合、PHP は自動的に削除します。

于 2012-10-27T06:12:11.243 に答える
0

初めてファイルを移動するとき...コピーではありません...そのため、次回はそのファイルが一時ディレクトリにないため、再度移動することはできません..

于 2012-10-01T05:16:53.353 に答える