2011-08-28 110 views
3

我想写一个PHP文件mamanger,当我从“。”更改导演。以“../uploads/”,文件大小是给我这个错误:PHP文件大小错误

Warning: filesize() [function.filesize]: stat failed for zipped-file.zip in /f5/jb-cms-testing/public/edit/files.php on line 83

83号线是print(filesize($dirArray[$index]));(我知道这是孤独无助,行号只是要关闭当我粘贴)

它准确地列出了文件名,但不是由于某种原因的大小。

这是一个完整的脚本:

  // open this directory 
      $myDirectory = opendir("../uploads/"); 

      // get each entry 
      while($entryName = readdir($myDirectory)) { 
       $dirArray[] = $entryName; 
      } 

      // close directory 
      closedir($myDirectory); 

      // count elements in array 
      $indexCount = count($dirArray); 
      Print ("$indexCount files<br>\n"); 

      // sort 'em 
      sort($dirArray); 

      // print 'em 
      print("<TABLE border=1 cellpadding=5 cellspacing=0 class=whitelinks>\n"); 
      print("<TR><TH>Filename</TH><th>Filetype</th><th>Filesize</th></TR>\n"); 
      // loop through the array of files and print them all 
      for($index=0; $index < $indexCount; $index++) { 
        if (substr("$dirArray[$index]", 0, 1) != "."){ // don't list hidden files 
        print("<TR><TD><a href=\"$dirArray[$index]\">$dirArray[$index]</a></td>"); 
        print("<td>"); 
        print(filesize($dirArray[$index])); 
        print("</td>"); 
        print("</TR>\n"); 
       } 
      } 
      print("</TABLE>\n"); 
+0

之前,这意味着,在文件'$ dirArray [$指数]'不存在。文件大小调用失败时变量包含什么? –

+1

如果文件确实存在,是否> 2GB? – b01

+0

1.我不知道,这是来自一个教程,我是PHP 2的新手。不,现在每个文件大约100kb,我不认为它们会变得那么大。 – JacobTheDev

回答

6

您正在打开的文件扫描../uploads/文件夹,但在当前工作目录检查文件大小。

这应该是有帮助的:

print(filesize('../uploads/' . $dirArray[$index])); 

这同样适用于你的链接,他们需要的路径校正工作。

+0

谢谢,那很完美。我会在几分钟内接受:) – JacobTheDev

0

您正在从当前工作目录(../uploads)中读取一个级别的目录,然后在正在查找当前工作目录中的文件的裸文件名上调用filesize()

前面加上../uploads/$dirArray[$index]调用filesize()