我有一个上传文件然后将其移动到目录的脚本。但是,脚本不知道其创建的文件的名称,因为它尚未创建它,并且无法找到要更新的文件。
因此,任何一方都需要一种方法来首先制作文件,或者有另一种方法可以做到这一点。代码。
<?php
$filename = '/home/divethe1/public_html/update/z-images/admin/upload/test/';
if ($_FILES['thumbfile']['error'] === UPLOAD_ERR_OK) {
$info = getimagesize($_FILES['thumbfile']['tmp_name']);
if (($info[2] !== IMG_GIF) && ($info[2] !== IMG_JPEG)) {
die("not a gif/jpg");
}
if (filesize($_FILES['thumbfile']['tmp_name']) > 100000) {
die("larger than 100000");
}
move_uploaded_file($_FILES['thumbfile']['tmp_name'], $filename . $_FILES['thumbfile']['name']);
echo '<script type="text/javascript">
parent.document.getElementById("thumbprogress").innerHTML = "Archiving"</script>Archiving';
}
else
{
echo '<script type="text/javascript">
parent.document.getElementById("thumbprogress").innerHTML = "Invalid File Format"</script>Invalid File Format';
}
?>
有什么想法吗?
答案 0 :(得分:1)
我认为你误解了move_uploaded_file()的工作原理。它不会为您创建文件。它:
$_FILES['thumbfile']['tmp_name']
)它无法处理上传或接收文件 - 当您的上传处理脚本被启动时,上传已经完成且文件正在该tmp_name
位置等待。
如果因任何原因无法完成移动,move_uploaded_file()
将返回false。如果您在目的地覆盖文件,并且假设您知道自己在做什么,它不会警告您。
答案 1 :(得分:0)
我的错误。我离开了目录测试。那应该已经消失了。无论如何,谢谢你的帮助。