1. 程式人生 > >PHP程式碼中是如何實現檔案上傳的?

PHP程式碼中是如何實現檔案上傳的?

在這裡插入圖片描述

這裡使用PHP的全域性陣列$_FILES來實現檔案上傳:
$_FILES[“file”][“name”] - 被上傳檔案的名稱
$_FILES[“file”][“type”] - 被上傳檔案的型別
$_FILES[“file”][“size”] - 被上傳檔案的大小,以位元組計
$_FILES[“file”][“tmp_name”] - 儲存在伺服器的檔案的臨時副本的名稱
$_FILES[“file”][“error”] - 由檔案上傳導致的錯誤程式碼
HTML程式碼:


PHP程式碼:

if (!empty($_FILES)) {
// 限制檔案大小
$file_size =

F I L E S [ " f i l
e " ] [ " s i z e "
] ; / / 2 M i f ( _FILES["file"]["size"]; // 限制2M大小 if ( file_size > 1024 * 1024 * 2) {
echo ‘檔案大小超過限制’;
exit;
}
// 限制檔案上傳型別
$file_type = $_FILES[“file”][“type”];
f i l e t y p e a r r = [ i m a g e / j p g , i m a g e / j p e g , i m a g e / p n g , i m a g e / p j p e g , i m a g e / g i f ] ; i f ( ! i n a r r a y ( file_type_arr = ['image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif']; if (!in_array( file_type, $file_type_arr)) {
echo ‘上傳檔案型別錯誤’;
exit;
}
// 檔案上傳到伺服器臨時資料夾之後的檔名
$tem_name = $_FILES[‘file’][‘tmp_name’];
// 取得檔案字尾名
$file_fix = explode(’.’, $_FILES[‘file’][‘name’])[1] ? explode(’.’, $_FILES[‘file’][‘name’])[1] : ‘png’;
// 檔案重新命名,這裡自動生成一個不重複的名字,方便使用
$name = md5(uniqid(md5(microtime(true)), true)) . ‘.’ . $file_fix;
// 要存放檔案的目錄定義,這裡按日期分開儲存
KaTeX parse error: Expected group after '_' at position 20: …_dir = dirname(_̲_FILE__) . '/up…file_dir)) {
mkdir(KaTeX parse error: Expected 'EOF', got '}' at position 28: …55, true); }̲ // 移動文…tem_name, $file_dir . $name);
echo ‘上傳成功’;
exit;
} else {
echo ‘檔案上傳失敗’;
exit;
}
文章來自:https://www.itjmd.com/news/show-4308.html