2012-02-24 44 views
0

这里是我用来上传文件并将其解压缩到目录中的代码。 但问题是,对于大于5MB的文件,它似乎很慢。 我认为它不必与网络,因为它在本地计算机。 我是否需要编辑php.ini文件或apache或任何其他workarround中的任何参数?在PHP中缓慢上传joomla controler

$target_path = "../somepath/"; 
      $target_path .= JRequest::getVar('uploadedDirectory')."/"; 

      $target_Main_path= JRequest::getVar('uploadedDirectory')."/"; 

      $folderName = $_FILES['uploadedfile']['name'];  
      $target_path = $target_path . basename($folderName); 

      //upload file 
      if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path."/")) { 
       echo "The file ". basename($_FILES['uploadedfile']['name']). " has been uploaded"; 
      } else{ 
       echo "There was an error uploading the file, please try again!"; 
      } 


      $zip = new ZipArchive; 
     $res = $zip->open($target_path); 


      $target_path = str_replace(".zip", "", $target_path); 

      echo $target_path; 

    if ($res === TRUE) { 
     $zip->extractTo($target_path."/"); 
     $zip->close(); 
     echo "ok"; 
    } else { 
     echo "failed"; 
    } 
+1

似乎问题不在于Joomla,而是在PHP中。我用上面的代码创建了一个简单的文件,我用它来上传一个大小为5MB的文件,但它需要很长时间,并且失败。 – themis 2012-02-24 19:54:31

回答

0

在处理文件上传时,有很多因素需要考虑。这些措施包括PHP设置:

  • max_input_time设置
  • 的max_execution_time
  • 的upload_max_filesize
  • 的post_max_size

执行时间会影响上传例如如果你有导致超时缓慢的上传速度。

如果您的文件大小+其他帖子数据超过post_max_size,上传量大于upload_max_filesize,则文件大小可能会导致问题。

Zip在归档/提取过程中使用了大量内存,并且很容易超过分配给PHP的内存 - 所以这也值得检查。

我会从this页开始,并注意一些评论。

+0

thanx为您的答案,但没有任何帮助。我有 max_input_time设置= 60 的max_execution_time = 30 的upload_max_filesize = 110M 的post_max_size = 8MB 我试图上传的文件就像574KB(我做出了最后的测试)。 另外我在apache根目录下创建了一个测试项目,以测试php的上传功能,但它仍然很慢。它似乎与apache或php上的一些设置有关。仍然不能解决问题 – themis 2012-02-25 07:40:49

+0

我的UNIX服务器上,我承载该文件似乎工作正常和快速相同的代码。它在我的Windows机器上遇到了问题。 – themis 2012-02-25 08:21:45

+0

我很惊讶,我使用谷歌浏览器进行了测试,我查看了谷歌浏览器的底部,当我开始上传时,发生了一个进度%,并且所有内容看起来都很好。 Firefox正在上传时发生问题。因此,我必须接受你的回答,因为这很有帮助。感谢名单 – themis 2012-02-25 09:25:50