時間:2020-10-23
瀏覽量:
index.html代碼:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="上傳"> </form> </body> </html>
upload.php代碼:
<?php /** * author: James(866081@qq.com) */ //1、判斷提交方式及上傳文件是否有錯誤 if($_SERVER['REQUEST_METHOD'] != 'POST' || $_FILES['file']['error'] != 0){ header("refresh:1;url=" . $_SERVER['HTTP_REFERER']);//返回其調用頁面 die('<h1>文件上傳錯誤!</h1>'); } //2、判斷上傳文件類型 //定義允許上傳的文件類型及文件擴展名數組 $type_arr = ['image/jpeg','image/png','image/gif','jpg','png','gif']; //獲取文件擴展名 $ext = pathinfo($_FILES['file']['name'],PATHINFO_EXTENSION); //創建一個fileinfo資源,用來檢測文件的真實類型 $finfo = finfo_open(FILEINFO_MIME_TYPE); //獲取文件的真實類型,不會隨擴展名改變類型 $mime_type = finfo_file($finfo,$_FILES['file']['tmp_name']); //判斷文件類型、擴展名是否合法 if(!in_array($mime_type,$type_arr) || !in_array($ext,$type_arr)){ header("refresh:2;url=" . $_SERVER['HTTP_REFERER']); die('<h1>上傳文件類型不合法,請重新上傳!</h1>'); } //3、將文件移動到指定路徑 //定義文件存放路徑 $dir = './uploads/'.date('Y').date('m').date('d').'/'; if(!is_dir($dir)){ mkdir($dir,0777,true); } //拼接上傳后要定義的文件名 $dst_name = $dir.uniqid().'.'.$ext; //判斷是否上傳成功 if(move_uploaded_file($_FILES['file']['tmp_name'],$dst_name)){ echo '<h1>文件上傳成功!</h1>'; header("refresh:2;url=". $_SERVER['HTTP_REFERER']); }else{ echo '<h1>文件上傳失??!</h1>'; header("refresh:2;url=". $_SERVER['HTTP_REFERER']); } ?>
RELATED RECOMMEND