2012-02-24 17 views
0

ここに私がファイルをアップロードしてディレクトリに解凍するコードです。 しかし問題は、5MBを超えるファイルでは非常に遅いようです。 ローカルホストコンピュータにあるので、ネットワークと関係がないと思います。 php.iniファイルやApacheなどのパラメータを編集する必要はありますか?PHPでjoomlaの制御が遅い

$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

答えて

0

ファイルアップロードを処理するとき、考慮すべき多くの要素です。

  • max_input_time
  • max_execution_timeに
  • upload_max_filesizeで
  • post_max_sizeのたとえば、あなたがタイムアウトが生じ遅いアップロードの速度を持っている場合は、アップロードに影響を与えることができ

実行時間:これらは、PHPの設定を含めます。

ファイルサイズ+残りの投稿データがpost_max_sizeを超える場合、アップロードがupload_max_filesizeよりも大きいと問題が発生することがあります。

Zipは、アーカイブ/抽出プロセスで大量のメモリを使用し、PHPに割り当てられたメモリを簡単に超える可能性があります。チェックするほど価値があります。

私はthisページから始まり、いくつかのコメントを書き留めます。

+0

ですが、何も助けてくれませんでした。私は私がアップロードしようとしています max_input_time = 60 max_execution_timeに= 30 upload_max_filesizeで= 110M post_max_sizeの= 8メガバイト ファイルが574キロバイト(私が作った最後のテスト)のようなものである必要があります。 また、phpのアップロード機能をテストするために、下のapache rootでtestprojectを作成しましたが、まだ遅いです。それは、ApacheやPHPのいくつかの設定と関係しているようです。問題を解決するにはまだ – themis

+0

私のファイルをホストしている私のUNIXサーバ上の同じコードは正常に動作しているようです。私のWindowsマシン上で、私は問題に遭遇しました。 – themis

+0

私はGoogle Chromeでテストしたところ驚きました。私はアップロードを開始したときに進行中の進捗状況があり、クロームですべてうまくいくように見えました。問題は、Firefoxがアップロードされているときに発生します。そのため、私はあなたの答えを受け入れなければなりません。 Thanx – themis