首先前台HTML表單代碼如下:
1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 4 <title>PHP中文網上傳視頻</title> 5 6 </head> 7 <body> 8 <form action='./upload.php' method=post enctype="multipart/form-data"> 9 <input type="hidden" name="MAX_FILE_SIZE" value="2000000000"> 10 <input type=file name=upfile size=20> 11 <input type=submit value='上傳文件'> 12 </form> 13 </body> 14 </html>
前端頁面效果如下:
然后后台處理上傳視頻的PHP代碼如下:
1 <?php 2 /** 3 * PHP上傳視頻 4 */ 5 $upfile = $_FILES['upfile']; 6 7 function upload_file($files, $path = "./upload", $imagesExt = ['jpg', 'png', 'jpeg', 'gif', 'mp4']) 8 { 9 // 判斷錯誤號 10 if (@$files['error'] == 00) { 11 // 判斷文件類型 12 $ext = strtolower(pathinfo(@$files['name'], PATHINFO_EXTENSION)); 13 if (!in_array($ext, $imagesExt)) { 14 return "非法文件類型"; 15 } 16 17 // 判斷是否存在上傳到的目錄 18 if (!is_dir($path)) { 19 mkdir($path, 0777, true); 20 } 21 22 // 生成唯一的文件名 23 $fileName = md5(uniqid(microtime(true), true)) . '.' . $ext; 24 25 // 將文件名拼接到指定的目錄下 26 $destName = $path . "/" . $fileName; 27 28 // 進行文件移動 29 if (!move_uploaded_file($files['tmp_name'], $destName)) { 30 return "文件上傳失敗!"; 31 } 32 return "文件上傳成功!"; 33 } else { 34 // 根據錯誤號返回提示信息 35 switch (@$files['error']) { 36 case 1: 37 echo "上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值"; 38 break; 39 case 2: 40 echo "上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值"; 41 break; 42 case 3: 43 echo "文件只有部分被上傳"; 44 break; 45 case 4: 46 echo "沒有文件被上傳"; 47 break; 48 case 6: 49 case 7: 50 echo "系統錯誤"; 51 break; 52 } 53 } 54 55 } 56 57 echo upload_file($upfile); 58 59 ?>
那么在這個PHP代碼中,我們定義了一個upload_file的上傳函數,通過這個函數不僅可以實現視頻上傳還能實現圖片上傳。
並且已經通過詳細的注釋給大家介紹了每一步操作的含義,方便大家參考學習。
最后我們可以選擇上傳一段視頻進行測試,結果如下:
鏈接:https://mp.weixin.qq.com/s/Go5tzd1_omhgNyn6d3BKzA