0

我需要一点帮助:

我从 HTML 上传表单中获取一个文件。我在 $File 中有一个“目标”文件名。

当我这样做时:

copy($_FILES['binfile']['tmp_name'], $File);
echo '<hr>' . filesize($_FILES['binfile']['tmp_name']);
echo '<hr>' . filesize($File);

一切正常。我两次得到相同的号码。

但是,当我删除第一次调用filesize()时,我得到“0”(零)。

copy($_FILES['binfile']['tmp_name'], $File);
echo '<hr>' . filesize($File);

有什么建议么?我究竟做错了什么?为什么我需要先获取“原始”文件的文件大小,然后才能获取副本的大小?

(实际上就是这样:我需要为原始文件调用 filesize()。sleep ()和调用另一个文件的filesize()都没有帮助。)

系统:

  • 阿帕奇 2.0
  • PHP 5.2.6
  • Debian Linux (莱尼)
4

3 回答 3

2

这个文件有多大?您正在做一份副本,然后立即说明该文件。这可能是问题吗?

内置 move_uploaded_file() 函数是否给出相同的行为?

于 2010-04-09T17:08:46.253 回答
0

试试这个:

copy($_FILES['binfile']['tmp_name'], $File);
clearstatcache();
$filesize = $_FILES['binfile']['size'];
echo '<hr>' . $filesize;
于 2010-04-09T17:14:32.803 回答
0

这个怎么样:

copy($_FILES['binfile']['tmp_name'], $File);

clearstatcache();
while (empty(filesize($File)))
    sleep(2);

echo '<hr>' . filesize($File);

或者试试这个:

copy($_FILES['binfile']['tmp_name'], $File);

clearstatcache();
while (!file_exists($File))
    sleep(2);

echo '<hr>' . filesize($File);
于 2010-04-09T17:53:43.657 回答