文件上传到多个目录中

时间:2012-10-01 05:14:35

标签: php

这是一个在所有目录中上传文件的脚本。但是当我运行它时,它只上传一次然后无法上传。这段代码有什么不对?

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;
}

3 个答案:

答案 0 :(得分:1)

使用copy()代替move_uploaded_file()move_uploaded_file()在完成后删除源文件,因此您无法在同一文件上多次使用它。 copy()单独保留原始文件,因此您可以根据需要多次执行此操作。

当脚本退出时,如果脚本未被脚本移动,PHP会自动删除上传的临时文件。

答案 1 :(得分:0)

第一次移动文件时...不复制...所以只有下次该文件不在临时目录中,所以你不能再移动..

答案 2 :(得分:0)