2013-10-23 71 views
0

我有以下用於文件下載的腳本。大尺寸文件不能用php下載

function download(){ 
     $this->file = $this->getFile(); 
     if($this->filesize <= 0 || $this->filesize == null){ 
      echo $this->filesize; 
     } else { 
      set_time_limit(0); 

      header('Content-Description: File Transfer'); 
      header('Content-type:'.$this->contenttype); 
      header('Content-Disposition: attachment; filename='.$this->filename.'.'.$this->extension); 
      header('Content-Transfer-Encoding: binary'); 
      header('Expires: 0'); 
      header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
      header('Pragma: public'); 
      ob_end_clean(); 
      readfile('/upload/'.$this->fileUid.'.'.$this->extension); 
     } 

     die(); 
    } 

當我嘗試下載文件具有體積小(在KBS)文件(S)成功下載,但是如果文件較大即超過1MB馬麗娟,那麼文件中正確不下載,下載的文件大小以Kbs爲單位,並且文件也不會打開。有沒有人可以在這方面幫助我,我試過ob_end_clean(),但沒有奏效。請幫助我。 Regards,

+0

如果在文本編輯器中打開下載的文件,最後一行是否有任何錯誤消息? – Drahcir

+0

是,
警告:ReadFile的(/home/totalrec/upload/c924b6aa211faf2706e89abd3aaeea29.pdf)function.readfile]:未能打開流:在/家庭/ totalrec /的public_html /測試1 /班/文件沒有這樣的文件或目錄.class.php on line
是文件的內容。 – Shahzeb

+0

然後,這是問題解決我認爲,大聲笑:) – Drahcir

回答

2

正如我在您的問題評論中所述,該文件在服務器上不存在。所以真正的問題是上傳腳本。

您應該閱讀Common Pitfalls Of File Upload我的猜測是upload_max_filesize,雖然它可能是這些缺陷中的任何一個,但取決於服務器設置。

+0

那麼這是否意味着上傳腳本不適用於大文件?因爲小文件工作正常。 – Shahzeb

+0

這是我的上傳腳本[ move_uploaded_file($ this-> tmp_name,「/ home/totalrec/upload /」。$ this-> fileUid。'。'。$ this-> ext);] – Shahzeb

+0

已更新我的答案,看看鏈接 – Drahcir