abstrakt:<?php /** * Created by PhpStorm. * Date: 2019/4/5 * Time: 15:31 */ /** * 單文件上傳 * @param $fileInfo &
<?php /** * Created by PhpStorm. * Date: 2019/4/5 * Time: 15:31 */ /** * 單文件上傳 * @param $fileInfo // 上傳文件信息 * @param string $upPath // 目標(biāo)目錄 * @param array $upExt // 上傳文件類型 * @param int $maxSize // 上傳最大限制 * @return string 提示信息 */ function upload_file($fileInfo,$upPath='./upload',$upExt = ['jpg','pan','jpeg','txt','xls'],$maxSize = 1000000) { // 判斷文件錯(cuò)誤類型是否為0 if($fileInfo['error'] === 0) { // 獲取文件后綴 $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION)); if (!in_array($ext, $upExt)) { return '非法文件類型'; } // 判斷文件是否超出了限制 if ($fileInfo['size'] > $maxSize) { return '上傳文件超出了限制'; } // 判斷文件是否被上傳 if (!is_uploaded_file($fileInfo['tmp_name'])) { return '非法上傳操作'; } // 判斷上傳到的目錄是否存在 if (!is_dir($upPath)) { mkdir($upPath, 0777, true); } // 生成唯一文件名 $uniName = substr(md5(uniqid(microtime(true), true)), 5, 10); $destName = $upPath . '/' . $uniName . '.' . $ext; if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) { return '文件上傳失敗'; } return '文件上傳成功'; } else { switch($fileInfo['error']) { case 1: $res = '文件上傳超過了php.ini中upload_max_size的限制'; break; case 2: $res = '上傳文件超過了HTML中設(shè)置的MAX_FILE_XIZE限制值'; break; case 3: $res = '文件只有部分被上傳'; break; case 4: $res = '文件沒有被上傳'; break; case 6: $res = '找不到臨時(shí)文件夾'; break; case 7: $res = '文件上傳失敗'; break; } return $res; } } /** * @param $fileName 需要下載的文件 */ function down_file($fileName) { // 告訴瀏覽器下載文件的大小 header('Accept-Length:'.filesize($fileName)); // 告訴瀏覽器已附件的形式輸出,并返回文件名稱 header('Content-Disposition:attachment;filename='.basename($fileName)); // 文件輸出 readfile($fileName); } ?>
Korrigierender Lehrer:西門大官人Korrekturzeit:2019-04-08 09:55:15
Zusammenfassung des Lehrers:文件上傳的時(shí)候有個(gè)缺陷,switch中少了default,可能會(huì)引發(fā)未定義$res的錯(cuò)誤