PHP檔案上傳
必須確保伺服器目標檔案夾的屬性為可寫:chmod 777 -R dir
?
主要步驟:
1、根據網頁中設定位置,自建一個用於隱藏檔的檔案夾cyupload
2、修改cyupload的許可權,進入/tmp檔案夾中,chmod 777 cyupload -R
3、參考http://www.w3schools.com/php/php_file_upload.asp 的??? 代碼,分別建立upload.html 和 upload.php
4、根據需求將upload.php中的判斷語句修改
5、修改php.ini檔案,修改上傳檔案大小限制。
file_uploads = on ;是否允許通過HTTP上傳檔案的開關。預設為ON即是開
upload_tmp_dir ;檔案上傳至伺服器上儲存臨時檔案的地方,如果沒指定就會用系統預設的臨時檔案夾
upload_max_filesize = 200m ;望文生意,即允許上傳檔案大小的最大值。預設為2M
post_max_size = 200m ;指通過表單POST給PHP的所能接收的最大值,包括表單裡的所有值。預設為8M
一般地,設定好上述四個參數後,上傳<=8M的檔案是不成問題,在網路正常的情況下。
但如果要上傳>8M的大體積檔案,只設定上述四項還一定能行的通。
進一步配置以下的參數
max_execution_time = 0 ;
max_input_time = 2400 ;每個PHP頁面接收資料所需的最大時間預設60秒
memory_limit = 256m ;每個PHP頁面所吃掉的最大記憶體,預設8M
把上述參數修改後,在網路所允許的正常情況下,就可以上傳大體積檔案了
詳細代碼:upload.html
upload.php 0) { echo "Return Code: " . $_FILES["file"]["error"] . "
"; } else { echo "Upload: " . $_FILES["file"]["name"] . "
"; echo "Type: " . $_FILES["file"]["type"] . "
"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb
"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "
"; if (file_exists("/tmp/cyupload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "/tmp/cyupload/" . $_FILES["file"]["name"]); echo "Stored in: " . "/tmp/cyupload/" . $_FILES["file"]["name"]; } } }else { echo "Invalid file"; }?>
?