批改状态:合格
老师批语:文件上传是不是也挺简单的,有套路的
try{// 在try代码块内触发异常// spl_autoload_register()通过回调自动加载外部文件spl_autoload_register(function ($class){// 把$class中的\替换成系统分隔符$path=str_replace('\\', DIRECTORY_SEPARATOR, $class);// DIRECTORY_SEPARATOR是一个显示系统分隔符的常量$file=__DIR__. DIRECTORY_SEPARATOR .$path .'.php';// is_file() 检查指定的文件是否是常规的文件;file_exists() 检查文件或目录是否存在if(!(is_file($file) && file_exists($file)))// 抛出异常throw new Exception ('不是文件名或文件不存在');// 文件存在即引入require $file;});}catch(Exception $e){// 捕获异常die($e->getMessage());}
// 自动加载外部文件类require __DIR__ .'/loader.php';// 引入loader文件use inc\lib\Test1;// 类的别名与原始别名相同时,可以省去use inc\lib\Test2 as Te;echo Test1::$site, '<br>';echo Te::$site, '<br>';

<?phpprintf('<pre>%s</pre>',print_r($_FILES, true));echo '<hr>';//printf()输出格式化的字符串// print_r()用于打印变量;第2个参数为true则不输出结果,将结果赋值给一个变量,false则直接输出结果// $_FILES 是一个预定义的数组,用来获取通过 POST 方法上传文件的相关信息。如果为单个文件上传,那么 $_FILES 为二维数组;如果为多个文件上传,那么 $_FILES 为三维数组// 一、// 步骤1.获取错误代码// $error=$_FILES['pic']['error'] ?? null;// // 步骤2.判断错误代码// if($error===0) echo '文件上传成功<hr>';// elseif($error===1) echo '超过了php.ini中的大小<hr>';// elseif($error===2) echo '超过了上传表单中的MAX_FILE_SIZE值的大小<hr>';// elseif($error===4) echo '文件上传失败<hr>';// 二、// 1.获临时文件类型// $type = $_FILES['my_pic']['type'];// // strstr() 函数搜索字符串在另一字符串中的第一次出现// if (strstr($type, '/', true) !== 'image') echo '文件类型正确<hr>';// 搜索/在$type中第一次出现之前的字符串部分// 三、// 1.获取临时文件名// $tmp=$_FILES['pic']['tmp_name'];// // 2. is_uploaded_file()判断 文件是否是通过POST上传的?// if (is_uploaded_file($tmp)) echo '上传文件安全<hr>';// else echo '非POST<hr>';// 四、图片上传// 1.获取临时文件名$tmpFile=$_FILES['pic']['tmp_name'];// uploads/ :用户自定义目录,文件存放处// echo strstr($_FILES['pic']['name'], '.');// 获取文件后缀.jpg// 获取最终文件名,用md5对原始文件名进行加密// echo md5($_FILES['pic']['name']).'<hr>';// echo $_FILES['pic']['name'].'<hr>';// echo strstr($_FILES['pic']['name'], '.').'<hr>';$destFileName = './uploads/' .md5($_FILES['pic']['name']).strstr($_FILES['pic']['name'], '.');// echo $destFileName.'<hr>';// move_uploaded_file(临时文件名,正式路径)if (move_uploaded_file($tmpFile, $destFileName)){echo '<img src="'. $destFileName .'" width="200px;">';// 对图片进行预览echo '<p>上传成功了</p>';}?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>单文件上传</title></head><body><!-- 文件上传必须满足2个条件:1、method:post;2、enctype: multipart/form-data --><form action="" method="post" enctype="multipart/form-data"><fieldset><!-- 对表单中的相关元素进行分组 --><legend>文件上传</legend><!-- 设置允许上传的文件大小, 这个隐藏域必须写到input:file --><!-- <input type="hidden" name="MAX_FILE_SIZE" value="5000"/> --><input type="file" name="pic" id=""/><button>上传</button></fieldset></form></body></html>

<?phpprintf('<pre>%s</pre>',print_r($_FILES, true));// 将文件从临时目录中移动到正式的目录中// move_uploaded_file(临时文件, 正式路径)// 1.获临时文件名// $tmpFile = $_FILES['my_pic']['tmp_name'];// 最终文件名// echo strstr($_FILES['my_pic']['name'], '.');foreach ($_FILES as $file) {if ($file['error'] === 0) {$destFileName = './uploads/' . md5($file['name']). strstr($file['name'], '.');if (move_uploaded_file($file['tmp_name'], $destFileName)){echo '<p>上传成功了</p>';echo '<img src="'. $destFileName .'" width="200">';}}}// die;?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>多文件上传</title></head><body><form action="" method="post" enctype="multipart/form-data"><fieldset><legend>单文件上传</legend><input type="file" name="my_pic1" id=""><input type="file" name="my_pic2" id=""><input type="file" name="my_pic3" id=""><button>上传</button></fieldset></form></body></html>

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号