diff --git "a/\346\242\201\346\265\251/20220518-\346\226\207\344\273\266\344\270\212\344\274\240\345\222\214\345\274\202\345\270\270\345\244\204\347\220\206.md" "b/\346\242\201\346\265\251/20220518-\346\226\207\344\273\266\344\270\212\344\274\240\345\222\214\345\274\202\345\270\270\345\244\204\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..f9496cfc4fa5d48780fcefa017f7164b5f171e95 --- /dev/null +++ "b/\346\242\201\346\265\251/20220518-\346\226\207\344\273\266\344\270\212\344\274\240\345\222\214\345\274\202\345\270\270\345\244\204\347\220\206.md" @@ -0,0 +1,313 @@ +# PHP文件上传和异常处理 + +**目标** + +掌握文件上传,多文件上传 + +掌握超全局变量的使用 + +掌握异常处理 + + + +**超全局变量**任何地方可以用的内置变量 + +$_Get->get 传送方式 + +```php+HTML +get明文显示,不安全,且适合提交少量信息 + + +
+ 请输入你的姓名: + 请输入你的密码: + +
+ + + +post 传送方式 + +```php+HTML +post 不会显示密码框的信息,能传送大量信息 + + +
+ 请输入你的姓名: + 请输入你的密码: + +
+ + +POST + 可以接收到get河post两种方法的值 + +```php+HTML +$_REQUEST 能接收任意一种传送方式 + + +
+ 请输入你的姓名: + 请输入你的密码: + +
+ + +POST + 引用全局作用域中可用的全部变量 + +```php + +//function getSun(){ + // $GLOBALS $B; + //echo $b; +//} +``` + + + +$_FILES-> 上传文件使用 + +**文件上传** + + + +```php+HTML +1、创建一个文件上传表单 + + +
+ /**enctype="multipart/form-data"有这个才能传文件 + 请选择你要上传的文件: +
+ +
+ + + + +2、创建上传脚本 + +点我下载"; + }else{ + echo "保存失败"; + } +``` + +```php +第2种 + in_array()//判断一个值是否在数组里,是返回t,否返回f +$result = in_arry($lastname,$array); + if($result==false){ + echo "不允许上传的类型"; + }else{ + echo "允许上传"; + } +``` + + + + + +```php+HTML +多文件提交用数组[] + + +
+ + 请选择你要上传的文件: + 请选择你要上传的文件: + 请选择你要上传的文件: + 请选择你要上传的文件: + +
+ +
+ + +``` + + + + + +$_SERVER-> 系统环境变量 + +$_SESSION-> 用于会话控制 + +$_COOKIE-> 用于绘画控制 + +$_ENY-> 服务器端环境变量 + +**调错** + +显示错误代码 + +$_ERROR() + +# 作业 + +实现一个文件上传,限制只能上传pdf和word格式,大小1M以内 + +```php+HTML + + + + + Title + + +
+ 请选择你要上传的文件: +
+ +
+ + + + + +"; + //包含的信息有文件名、 + echo $_FILES["myfile"]['name']; +echo "
"; + //文件类型、 + echo $_FILES["myfile"]['type']; +echo "
"; + //文件大小、 + echo $_FILES["myfile"]['size']; +echo "
"; + //临时保存位置、 + echo $_FILES["myfile"]['tmp_name']; +echo "
"; + //错误代码 + echo $_FILES["myfile"]['error'];//0表示没有错误 +echo "

"; + + +$error = $_FILES["myfile"]['error'];//定义一个变量来接收收到的错误代码 +echo "错误为:".$error; +echo "
"; + + if($error==0){//1、判断是否有错误 + echo "没有错误,开始判断文件大小"; + echo "
"; + //判断大小符合要求 + define("SIZE",1024*1024);//定义运行上传的大小 + $size =$_FILES["myfile"]['size'];//定义一个变量来表示上传文件的大小 + echo "文件大小为".$size; + echo "
"; + if($size"; + //3、限制上传文件的类型 word,pdf + $array = array("pdf","word"); + $name = $_FILES["myfile"]['name']; + //将字符串分割成一个数组,获取到文件后缀名成为数组元素 + $nameArr = explode(".",$name); + //定义变量存放后缀名 + $lastname = $nameArr[count($nameArr)-1]; + echo "文件类型是".$lastname; + echo "
"; + $result=array_search($lastname,$array);//通过值来找键名,找到返回键名,找不到返回false + + if($result===false){ + echo "不允许上传的类型,上传失败"; + }else{ + echo "类型正确开始上传"; + } + }else{ + echo "文件太大了,上传失败"; + } + }else{ + echo "错误,上传失败"; + } +``` +