前言:
这是对昨天糊弄课程的补充,今天来看看我的PHP,文件上传过程实现的实际案例。我们来说下这次要实现的功能,首先用户可以选择文件并上传,服务器判断文件类型,并进行重新命名后保存。
ps:感谢挑错党小幻莅临挑错…
本课程中存在的错误:用尾缀分隔的方式可能导致,挂马的危险。比如1.jpg.php就可以成功挂马,应该对文件尾缀进行分隔统计后判断最终尾缀。
实现过程:
HTML中的文件选项:
//我们建立index.php为主页 <html> <body> <form action="up.php" method="POST" enctype="multipart/form-data"> 用户名:<input type="text" name="uName" ></br> 图片:<input type="file" name="uImg"></br> //file格式提交组件 <input type="submit" value="提交"> </form> </body> </html>
up.php上传页面实现过程:
<?php
$name=$_POST["uName"];//获取用户名
echo $name."</br>";
$uImg=_FILES["uImg"]; //获得image内容
echo $uImg ; //此时你发现这里输出了一个数组
print_r($uImg);
//array([name]=>test.jpg [type]=>inage/jpeg [tmp_name]=>c:/Windows/tmp/php6F.tmp[error]=>0[size=>99])//数组key分别为文件名称,文件类型,临时存放目录。错误信息,文件大小
[error]错误信息:0文件上传成功 1超过php.ini中文件限制大小 2超过文本域范围 3部分上传 4没有选择上传文件 ……………………
——————————————对文件尾缀进行判断——————————————————
$ext=explode(".",uImg[name]);//用explode“.”为分隔依据,分割文件名。
$extName=$uImg["1"];//获得文件尾缀
if($uImg!=jpg&&$uImg!=jpeg&&$uImg!=gif){
echo"文件格式异常!"; exit;//终止后面程序运行}
——————————————对文件大小进行判断——————————————————
if($uImg["size"]>2000000){
echo "文件过大"; exit;}
——————————————重命名————————————————————————————
$uImgname=time().rand(10000,99999).".".$uImg;
$upLoadUrl="upload/".$uImgname
move_uploaded_file($uImg["tmpname"],$upLoadUrl);
//使用move_uploaded_file(临时目录,拷贝目录);将临时目录中的文件拷贝到指定位置。
?>
一个最基础的,文件上传模块就这样做好了,有兴趣的同学们可以继续折腾在做个类似相册的小工具。
后记:
话说这篇文章是昨天就写好的,给自己一个偷懒的理由—今天发,其实这也是一种蓄力的说~学习超文本预处理器语言的基础一定要扎实,学一点,练一点,不熟悉绝对不能继续,每5天要复习2天。毕竟这种语言的一年自学成功率只有20%。它虽然不是很难,但是对方法和语法要求都是很高的。因为这是fangker的第一门动态语言,关于c语言这种程序之母没有太大的接触,直接上PHP这种衍生语言,更要仔细不可。

$extName=$uImg["1"];//获得文件尾缀if($uImg!=jpg&&$uImg!=jpeg&&$uImg!=gif){明显有逻辑上的错误! 在此之前 变量 uImg 应该是一个图片文件,没错吧。是你说来吐槽的,不要怪我,而且你就没运行试试?不说代码问题,就说最开始的<?php 你就写错了 ……居然成了 <php?跪了。我写了个类似的,你可以看一下。 上传txt文本的,你看看,当然,上传图片也可以。(好吧,是我记不住全部的图片Mine……)文件提交成员管理:验证密码:文件上传:$extName=$uImg["1"];//获得文件尾缀if($uImg!=jpg&&$uImg!=jpeg&&$uImg!=gif){明显有逻辑上的错误! 在此之前 变量 uImg 应该是一个图片文件,没错吧。是你说来吐槽的,不要怪我,而且你就没运行试试?不说代码问题,就说最开始的<?php 你就写错了 ……居然成了 <php?跪了。我写了个类似的,你可以看一下。 上传txt文本的,你看看,当然,上传图片也可以。(好吧,是我记不住全部的图片Mine……)文件提交成员管理:验证密码:文件上传: