PHP 檔案上傳 (2/2)
來源: Jollen 網路學院
作者: Jollen
細心的讀者可能發現了,我們在表單裡還多了一欄 MAX_FILE_SIZE
的欄位,這個欄位有什麼用途呢?
限制檔案長度
MAX_FILE_SIZE 這個欄位的目的是在限制檔案的長度,在 HTML
裡可以看到這一行:
<input type="hidden" name="MAX_FILE_SIZE"
value="40960"> |
我們限制使用者上傳的檔案最大可以有 40k (40960 bytes)。
漏洞?!
再 smart 一點的讀者又發現了,只要我們自己修改 MAX_FILE_SIZE
的值,再用自己修改過的網頁做檔案上傳,那不是就可以「破解」這個檔案長度的限制了嗎?
還好,聰明的 PHP 也可以從 php.ini 修改這個設定。編輯 php.ini,找到底下這一行:
upload_max_filesize = 2097152 |
預設值是 2MB (2097152 bytes),我們只要修改這個設定,然後再重新啟動
Apache 就可以啦!
預設上傳目錄
PHP 也提供了 upload_tmp_dir 的設定項目:
PHP 預設會把使用者上傳的檔案放到 /tmp,不過我們可以自行修改
upload_tmp_dir 的設定,就可以指定其它上傳的暫存目錄了。
不過要注意一下,這個目錄的權限必須設成所有人都可以讀寫
(chmod 777 xxx) 才可以喔 :)
--Jollen |