2010-01-08 71 views
1

我一直無法接受使用Dreamhost上傳大文件的php和JavaScript上傳腳本。我意識到你應該編輯php.ini來改變帖子的最大大小和內存限制,但它不會像它應該那樣運行。在Dreamhost上使用uploadify/php失敗很大的http上傳

我成功地完成了一個大文件上傳的唯一方法是切換到Dreamhost PS並使內存限制高達一個文件(1GB),但必須有另一種成本效益的方式,否則油畫網站如何像YouTube生存?如果我沒有可用的所有內存,則會發生I/O錯誤。

任何人都可以幫忙嗎?我在這個問題上掙扎了一個多月。

+0

跟進:儘管我調整了php.i倪,PHP只是不適合大型文件上傳,他們不斷讓我的VPS資源使用率飛漲。我創建了一個CGI上傳腳本,它沒有任何問題。謝謝您的幫助。 – 2011-03-15 20:48:56

回答

0

您通常無法增加共享託管網站空間上的最大文件大小。運行phpinfo()查看確切的大小限制是什麼。除此之外的任何事情可能都不會在沒有升級的情況下在該網絡空間上工作。

不要混淆max_upload_file_sizememory_limitmemory_limit適用於您的PHP腳本的一個實例允許使用多少RAM,並且與文件上傳無關。

+0

謝謝Pekka!我正在使用Dreamhost Private Server,它實際上允許修改php.ini,並且我的設置已通過phpinfo()進行了確認。我有適當的post_max_size和memory_limit設置。建議memory_limit高於此頁面上的post_max_size:http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=php2和統計數據顯示腳本確實吸收了大量內存。這個問題似乎是PHP將它全部存儲在內存中。其他人建議CGI腳本會更有效率,也許這就是解決方案。 – 2010-01-08 23:08:36

+0

上傳文件的實際處理在PHP腳本進入之前完成,因此內存限制不應該成爲問題。你可以發佈一些實際的數字(文件大小,限制等)?另外,你的腳本到底在做什麼?你能發佈接收腳本嗎?你到底在做什麼錯誤? – 2010-01-08 23:57:35

0

看起來答案就是製作一個Perl腳本。使用Perl我甚至在服務器內存使用中看不到任何信息。

0

編輯PHP.ini最終是解決方案。您必須更改max_upload_file_size,也許post_max_size,您可能還想要增加腳本的max_execution_time。這些變量會增加您的上傳能力。您還希望將實際的,已修改的PHP.ini腳本包含在您想要進行更改的實際目錄中。

參考:PHP Core Variables

嘗試創建/複製的php.ini到一個目錄,然後將info.php的詳細信息。 (info.php的 - 只是創建內容的新的空白php文件:<?php phpinfo() ?>

而且,永遠不會離開你的服務器上的文件info.php的我改變我的網站及其延伸

0

我同意使用的變化。到php.ini,你可以選擇你想要允許的文件有多瘋狂,沒有限制的大小,你打開自己的世界的問題。我認爲即使在perl你應該致命的,如果字節數一個文件超過了一定的數量,根據你的用戶的技術水平如何,你最終可能會超過你討價還價,並且你不想讓整個網絡服務器崩潰,因爲一個用戶上傳了一個200GB的文件