关于php中文件上传

1.在前端页面中

<form action="doAction.php" method="POST" enctype="multipart/form-data">

文件上传<input type="file" name="myFile">

<input type="submit" value="文件上传">

</form>

2单文件上传

$filename=$_FILES['myFile']['filename'];

$error=$_FILES['myFile']['error'];

$size=$_FILES['myFile']['size'];

$tmp_name=$_FILES['myFile']['tmp_name'];

$type=$_FILES['myFile']['type'];

//判断错误信息

if($error==UPLOAD_ERR_OK){

$ext=pathinfo($filename,PATHINFO_EXTENSION);

$filename=md5(uniqid(microtime(true),true)),".".$ext;

$destination="uploads/.$filename";

if(is_uploaded_file($tmp_name)){

if(move_uploaded_file($tmp_name,$destination){

echo "<script>alert('文件上传成功');</script>";

}else{

echo "</script>alert(‘文件上传失败');</script>";

}

}else{

echo "<script>alert('文件不是通过HTTP POST方式上传上来的');</script>";

}

 

}else{

switch($error){

case 1:

echo "超过了配置文件的大小";

break;

case 2:

echo "超过了表单提交的大小";

break;

case 3:

echo "文件部分被上传";

break;

case 4:

echo "没有文件被上传";

break;

case 6:

echo "没有找到临时目录";

break;

case 7:

echo "文件不可以读";

break;

case 8:

echo "由于php文件扩展中断了传输";

break;

}

}

总结:

1.在客户端,要想上传文件,有俩个要素 enctypoe="multipart/form-data"指定文件上传的编码方式

第二个是method="post"说明文件上传必须问post方式

2.在 服务器端对上传的文件进行处理

1.$_FILES;提交的表单,会把表单提交的信息保存在一个二维数组中,有5个变量,filename上传文件的名称,error上传文件的错误号,tmp_name文件上传时所在的服务器的

临时文件夹。size表示上传文件的大小,type表示文件上传的类型

上传文件后台处理时,先判断错误号,

case1 :表示上传文件超过了配置文件的大小,此配置文件在php.ini中默认的设置好的upload_max_filesize=2M表示文件上传的最大大小为2M;file_upload=on表示支持post的方式。

case2:表示上传文件超过表单提交文件的大小

case3;表示上传文件部分被上传

case4;表示文件没有被上传

case6:表示没有找到临时目录

case7:表示文件不可写

case8表示有与php的扩展中断了文件的传输

取文件的后缀名:

1$ext=pathinfo($filename,PATHINFO_EXTENSION)

2$ext=end(explode(".",$filename));其中explode(".",$filename)表示已.分割,返回数组array(0=>"index",1=>"png")参考;

end()方法返回数组中内部指针指向最后一个单元的值

3$ext=substr(strrchr($fliename,".),1)其中strrchr($filename,".")表示返回字符串中出现.位置开始,直到字符串结束,如果是index.png返回.png。substr(".png",1);表示从字符串的第一个位置开始截取,然后 就从.开始截取到结束为止,因此返回png;

后面朋友有更多获取文件后缀名的方法可以再我后面留言,大家一起交流,学习,谢谢大家,文章有什么不对的地方,还希望大家给与纠正,谢谢。

 

posted @ 2016-07-07 15:26  小白-前端  阅读(746)  评论(0编辑  收藏  举报