这是一个在所有目录中上传文件的脚本。但是当我运行它时,它只上传一次然后无法上传。这段代码有什么不对?
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;
}
答案 0 :(得分:1)
使用copy()
代替move_uploaded_file()
。 move_uploaded_file()
在完成后删除源文件,因此您无法在同一文件上多次使用它。 copy()
单独保留原始文件,因此您可以根据需要多次执行此操作。
当脚本退出时,如果脚本未被脚本移动,PHP会自动删除上传的临时文件。
答案 1 :(得分:0)
第一次移动文件时...不复制...所以只有下次该文件不在临时目录中,所以你不能再移动..
答案 2 :(得分:0)