用php实现文件的上传

2025-04-06 22:41:09

1、准备工作:开始前要注意,由于上传文件用不到数据库,所以我就不创建数据库了。(其实也会用到数据库,就是要取某个人的头像时候,是需要把这个图片的路径存到数据库中然后取出来显示的。)然后第一步,你需要先按我的路径进行创建项目路径:在wamp中的www文件夹里面按下面的路径进行创建: tests/up/创建uploads文件夹(用于存放上传后的文件的文件夹),创建index.php(用于点击选择文件后提交的页面),doupload.php(实现文件上传的代码存放)可以看图片进行创建

用php实现文件的上传

2、第一步:以上的准备工作都做好之后,在index.php里面进行编码。代码如下:<!-颍骈城茇- 文件上传得form表单 --><!-- enctype="multipart/form-data"文件上传必加的文件头!! action是提交到的文件路径,method是提交的方式--><form action="doupload.php" method="post" enctype="multipart/form-data"><!-- 注意下面这个就是实现点击后上传文件的input标签 doupload.php是根据这里设置的name进行获取文件信息的-->上传图片:<input type="file" name="pic"><!--注意下面这个就是实现点击后提交按钮 --><input type="submit" value="上传"></form>注意:运行index.php文件必须是开启wamp后在浏览器中输入:localhost/tests/up/index.php才可以运行!!后面操作也是这样。

用php实现文件的上传
用php实现文件的上传

3、第二步:在doupload.php文件里面进行如下的编码,这里我将会分布给大家解析。代码编写步骤:首先获取文件信息,然后定义上传的文件类型,上传后文件存放路径代码: //1.获取上传文件信息 $upfile=$_FILES["pic"]; //pic是前面index.php上传文件时的name值! //定义允许的类型 ,如果需要上传其他文件你只要对应的改文件属性就可以了,注意按格式。我这里主要是设置了只能上传图片,当然你也可以不要这个定义就可以什么都上传了。 $typelist=array("image/jpeg","image/jpg","image/png","image/gif");//上传后存放的路径 $path="./uploads/";//定义一个上传后的目录

用php实现文件的上传

4、第三步:对上传的文件进行错误的定义编写,这样就知道当文件上传的过程中哪里出现问题了,就弹出对应的错误提示。代码: //2.过滤上传文件的错误号 i熠硒勘唏f($upfile["error"]>0){ //$upfile["error"]是文件错误机制,可以针对对应提示的错误编码来对应的显示错误信息。 //获取错误信息 switch($upfile['error']){ case 1: $info="上传得文件超过了 php.ini中upload_max_filesize 选项中的最大值."; break; case 2: $info="上传文件大小超过了html中MAX_FILE_SIZE 选项中的最大值."; break; case 3: $info="文件只有部分被上传"; break; case 4: $info="没有文件被上传."; break; case 6: $info="找不到临时文件夹."; break; case 7: $info="文件写入失败!"; break; } die("上传文件错误,原因:".$info); //die是直接把错误输出并且停止继续执行下去 }注意:以上这里注意看对应的数字就是对应的错误原因。

用php实现文件的上传

5、第四步:这次的编码主要限制文件的大小,文件类型的过滤,还有设置文件名称代码: //3.本次上传文件大小的过滤(自己选择)删除后就可以不限制文件大小 if($upfile['size']>100000){ die("上传文件大小超出限制"); } //4.类型过滤 if(!in_array($upfile["type"],$typelist)){ die("上传文件类型非法!".$upfile["type"]); } //5.上传后的文件名定义(随机获取一个文件名) $fileinfo=pathinfo($upfile["name"]);//解析上传文件名字 do{ //为的是判断是否已经存在文件名称和路径 $newfile=date("YmdHis").rand(1000,9999).".".$fileinfo["extension"];//这里给文件的名字设置为当前时间年月日时分秒+随机设置数字,这一就可以防止名字冲突而覆盖了。 }while(file_exists($path.$newfile));

用php实现文件的上传

6、第五步:执行文件上传。这步主要是移动文件到设置好的路径并且重新给文件取名。代码://6.执行文件上传 //判断是否是一个上传的文件 if(is_uploaded_file($upfile["tmp_name"])){ //执行文件上传(移动上传文件) -->需要移动文件到当前的路径 if(move_uploaded_file($upfile["tmp_name"],$path.$newfile)){echo "文件上传成功!";//如果上传成功就提示成功//注意:如果你是想把文件名存到数据库你需要在这里直接用sql语句执行添加东西到数据库就可以了,并且文件的路径+名字是:$path.$newfile. }else{ die("上传文件失败!"); //如果上传失败就提示失败 } }else{ die("不是一个上传文件!"); //如果不是文件就提示这个 }

用php实现文件的上传

7、然后保存好后就可以开始测试这个文件上传了。我就在这里进行演示,并且在下个步骤进行贴出全部的代码。

用php实现文件的上传
用php实现文件的上传
用php实现文件的上传

8、最后附上全部的代码,首先是index.php<!doctype html><html><head> <meta charset="UTF-8"> <title>图片上传和下载示例</title></head><body><center><h2>文件上传教程</h2><!-- 文件上传得form表单 --><form action="doupload.php" method="post" enctype="multipart/form-data">上传图片:<input type="file" name="pic"><input type="submit" value="上传"></form></center></body></html>

用php实现文件的上传

9、其次是doupload.php,执行上传文件的代码代码:<meta charset="utf-8"><?php//1.获取上传文件傻疑煜阖信息 $upfile=$_FILES["pic"]; //定义允许的类型 $typelist=array("image/jpeg","image/jpg","image/png","image/gif"); $path="./uploads/";//定义一个上传后的目录 //2.过滤上传文件的错误号if($upfile["error"]>0){ switch($upfile['error']){//获取错误信息 case 1: $info="上传得文件超过了 php.ini中upload_max_filesize 选项中的最大值."; break; case 2: $info="上传文件大小超过了html中MAX_FILE_SIZE 选项中的最大值."; break; case 3: $info="文件只有部分被上传"; break; case 4: $info="没有文件被上传."; break; case 6: $info="找不到临时文件夹."; break; case 7: $info="文件写入失败!";break; } die("上传文件错误,原因:".$info);} //3.本次上传文件大小的过滤(自己选择) if($upfile['size']>100000){ die("上传文件大小超出限制"); } //4.类型过滤 if(!in_array($upfile["type"],$typelist)){ die("上传文件类型非法!".$upfile["type"]); } //5.上传后的文件名定义(随机获取一个文件名) $fileinfo=pathinfo($upfile["name"]);//解析上传文件名字 do{ $newfile=date("YmdHis").rand(1000,9999).".".$fileinfo["extension"]; }while(file_exists($path.$newfile)); //6.执行文件上传 //判断是否是一个上传的文件 if(is_uploaded_file($upfile["tmp_name"])){ //执行文件上传(移动上传文件) if(move_uploaded_file($upfile["tmp_name"],$path.$newfile)){ echo "文件上传成功!"; //echo $newfile;//取这个文件名 // echo "<h3><a href='index.php'>浏览</a></h3>"; }else{ die("上传文件失败!"); } }else{ die("不是一个上传文件!"); }

用php实现文件的上传
用php实现文件的上传
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢