請問各位大大
小弟之前寫了個傳檔案程式
發現要改php.ini
upload_max_filesize = 32M
post_max_size = 32M
這種做法等於是傳檔需要先暫存在RAM之後才寫入系統
但這樣子不就會非常的吃RAM !?
所以想請教有什好方法上傳檔案又不會這麼吃RAM
如果PHP做不到, 用什才能做到!?
因為我想寫一個WEB介面的傳檔案功能
upload_max_filesize = 32M
post_max_size = 32M
並不是說上傳檔案會用 memory 暫存,這設定只是限制能上傳多大的檔案而已。
至於 PHP 會使用的 memory 大小,是 memory_limit = ??? 這個設定值在限定。
所謂 PHP 上傳檔案的方式,也就是 Form submit 的方式。這種方式建議是不要傳超過 10MB,要不然 user 會等到不耐煩,而又不能做別的事 (在這個網站上)。是很糟糕的 UI 設計。
要在網頁裡傳 GB 級的檔案,除非用一些元件幫你製造出進度條,要不然傳那麼大實在很不佳。建議還是架一個 FTP 來輔助吧。
我以前是用 proftpd 來搭配 PHP。proftpd 設定認證使用 mysql,而 php 在登入的時候,就把該 user 的帳密寫到 proftpd 會用的認證 table 裡,登出的時候就順便清除。醬子 user 只有在登入 Web 之後才能使用 FTP 上傳,用的帳密也跟 Web 用的一樣。