代码之家  ›  专栏  ›  技术社区  ›  Marcelo Cantos

PHP:文件大小问题

  •  0
  • Marcelo Cantos  · 技术社区  · 14 年前

    我需要一些帮助:

    我从一个HTML上传表单得到一个文件。我在$File中有一个“target”文件名。

    当我这样做时:

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

    一切正常。我得到同样的数字两次。

    但是当我删除 ,我得到“0”(零)。

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

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

    (事实上就是这样:我需要打电话给 对于原始文件。都不是 睡眠() 也不打电话 另一个文件。)

    系统:

    • Apache 2.0版
    • PHP 5.2.6版
    • Debian Linux(Lenny)
    3 回复  |  直到 14 年前
        1
  •  2
  •   zaf    14 年前

    内置的move\u uploaded\u file()函数是否给出相同的行为?

        2
  •  0
  •   SoLoGHoST    14 年前

    试试这个:

    copy($_FILES['binfile']['tmp_name'], $File);
    clearstatcache();
    $filesize = $_FILES['binfile']['size'];
    echo '<hr>' . $filesize;
    
        3
  •  0
  •   SoLoGHoST    14 年前

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