跟着百度学PHP[13]-文件处理 文件后缀验证、设置随机文件名....
目录:
文件的处理:00x1 判断错误
文件的处理:00x2 判断类型
文件的处理:00x3 文件大小
++++++++++++++++++++++++++++++++++++++++++++++++
文件的处理:00x1 判断错误
既然是上传就会有错误,比如如下图所示的错误:
<?php
header("content-type:text/html;charset=utf-8");
echo "<pre>";
print_r($_FILES);
$tem_file = $_FILES['pic']['tmp_name'];#临时路径
$new_file = "./uploads/".$_FILES['pic']['name'];#要移动的路径。
switch ($_FILES['pic']['error']) {
case 1:
echo "上传的文件超出了限定的值。";
break;
case 2:
echo "上传的文件超出了HTML表单中隐藏域MAX_FILE_SIZE元素所定的最大值。";
break;
case 3:
echo "文件只被不分上传。";
break;
case 4:
echo "没有上传任何文件。";
break;
}
if(move_uploaded_file($tem_file,$new_file)){//如果移动成功就输出上传成功,否则失败
echo "成功上传";
}else{
echo "上传失败";
}
echo "</pre>";
?>
文件的处理:00x2 判断类型
扣出后缀的方法:
<?php
$filename = "./def.txt";
$a = (explode(".",basename($filename)));#basename是取出文件名,explode是将文件名打散成为数组。
echo array_pop($a);#array_pop
?>
限制上传的文件类型
<?php
$x = "./def.txt";
$a = explode(".",basename($x));
$b = array_pop($a);
echo $b;//获取到上传的文件后缀。
$c = array("txt","doc","jpg","swf","rar","zip");
if(!in_array($c,$b)){
echo "<script>alert('抱歉,您上传的文件格式不对。')</script>";
exit;
}else{
echo "格式正确,正在上传...";
}
?>
文件的处理:00x3 随机文件名
$new_file = "./uploads/".date('ymdhis').rand(100,999).".".$houzhui;
最终代码:
前端:
<html>
<body>
<form action="upload.php" method="POST" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
uplaod file:<input type="file" name="pic" value="">
<input type="submit" value="uplaod" name="pic">
</form>
</body>
</html>
后端:
<?php
header("content-type:text/html;charset=utf-8");
echo "<pre>";
print_r($_FILES);
$maxfile = "1000000";
$hello = explode(".",basename($_FILES['pic']['name']));
$houzhui = array_pop($hello);
$b = array("jpg","doc","txt","zip");
if (!in_array($houzhui,$b)) {
echo "<script>alert('你上传的文件类型错误')</script>";
exit;
}
if ($_FILES['pic']['size'] > $maxfile){
echo "<script>alert('文件超出了限制')</script>";
exit;
}
//------------------------随机文件名-------------------------
$tem_file = $_FILES['pic']['tmp_name'];#临时路径
$new_file = "./uploads/".date('ymdhis').rand(100,999).".".$houzhui;#要移动的路径。
switch ($_FILES['pic']['error']) {
case 1:
echo "上传的文件超出了限定的值。";
break;
case 2:
echo "上传的文件超出了HTML表单中隐藏域MAX_FILE_SIZE元素所定的最大值。";
break;
case 3:
echo "文件只被不分上传。";
break;
case 4:
echo "没有上传任何文件。";
break;
}
if(move_uploaded_file($tem_file,$new_file)){//如果移动成功就输出上传成功,否则失败
echo "成功上传";
}else{
echo "上传失败";
}
echo "</pre>";
?>
跟着百度学PHP[13]-文件处理 文件后缀验证、设置随机文件名....的更多相关文章
- 跟着百度学PHP[13]-文件上传
PS:上传的时候一定要用POST方法,GET方法不行. 文件上传的entype要改成“mutilpart/form-data”这个编码 <html> <form action=&qu ...
- 跟着百度学PHP[14]-PDO之Mysql的事务处理2
前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了. 将自动提交关闭. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT 将其设置为0即可关闭,如:$pd ...
- 跟着百度学PHP[12]-文件处理 文件 目录
00x1 文件的属性 文件属性 <?php //-------------------------定义大小转换函数--------------- function changesize_dw($ ...
- 跟着百度学PHP[11]-PHP当中的异常处理
首先要说一下常见的三种错误: 1.语法错误 2.运行错误 3.逻辑错误 00x1 错误报告及错误级别 PHP的错误分为三个等级 1.注意(notice) 没有变量a 2.警告(warning) 没 ...
- 跟着百度学PHP[6]超级全局变量
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用. 参考文献:http://www.runoob.com/php/php-superglobals ...
- 跟着百度学PHP[4]OOP面对对象编程-6-构造方法(__construct)和构析方法(__destruct)
函数就是成员方法(方法有三:构造方法.成员方法.析构方法) 下面是两种方法. 构造方法和构析方法 00x1 构造方法 构造方法会在创建对象之后自动调用.其名称为__construct <?php ...
- 跟着百度学PHP[9]-session会话
参考:http://www.w3school.com.cn/php/php_sessions.asp session变量用于存储有关用户的会话的信息,或更改用户会话的设置,session变量保存的信息 ...
- 跟着百度学PHP[17]-PHP扩展CURL的POST传输数据
如果是GET的话就不必那么多设置.但是基本需要用到POST就需要用到以下的几个设置选项. <?php $username = "admin"; $password = &qu ...
- 跟着百度学PHP[15]-session回收机制
gc(Garbage Collection 垃圾回收) 在用户访问的时候会生成许多的临时session文件,顾名思义session回收机制就是用来删除这些临时文件的. session.gc_maxli ...
随机推荐
- PHP实现链表
看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下. 简短不割 ...
- sed 命令编辑文本
1.sed 概述 sed 是一个非交互式文本编辑器.它能够对文本文件和标准输入进行编辑,标准输入能够是来自键盘输入.文件重定向.字符串.变量.甚至来自于管道文本. 2.sed工作流程简述 sed在处理 ...
- 用php编写我的第一段代码:hello world
一.php环境的搭建 在编写php前,先搭建php环境,我选择了一站式安装软件WampServer,WampServer的下载地址:http://www.wampserver.com/ WampSer ...
- myeclipse报异常:java.lang.OutOfMemoryError: Java heap space
- MySQL 清理slowlog方法
MySQL 清理slowlog方法 SET GLOBAL slow_query_log = 'OFF'; ALTER TABLE mysql.slow_log RENAME mysql.slow_lo ...
- 深入理解javascript闭包【整理】
原文链接:http://www.cn-cuckoo.com/2007/08/01/understand-javascript-closures-72.html 英文原文:http://www.jibb ...
- Oracle Unicode转中文(解码)
Oracle Unicode转中文(解码) CreateTime--2018年3月29日15:23:30 Author:Marydon 情景描述: 将数据库中的某个字段误存储的是Unicode编码 ...
- 常用Jar包下载
Jackson包下载 :https://yunpan.cn/cBdPGeIESZ4jE 访问密码 36f7
- java面试题(开发框架)
博客分类: java基础 面试Java多线程编程设计模式 java基础面试题目,以备不时之需 俗话说 细节决定成败. 就算很简单,很小的问题,我们还是要注意一下的. ...
- C#获取文件的md5
上代码: //获取MD5 public static string GetMd5Hash(String input) { if (input == null) { return null; } MD5 ...