阅读本文 ,大概需要5分钟 ,带你了解文件上传.
1.文章开始之前 我们先了解一下 $_FILES() 超全局变量
// php处理代码
echo "<pre>";
print_r($_FILES['test']);
echo "<pre>";
// 打印如下
Array
(
[name] => glob.jpg
[type] => image/jpeg
[tmp_name] => C:\Windows\php7BD2.tmp
[error] => 0
[size] => 66959
)
名称 | 解释 |
---|---|
$_FILES[‘myFile’][‘name’] | 客户端文件的原名称。 |
$_FILES[‘myFile’][‘type’] | 文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 |
$_FILES[‘myFile’][‘size’] | 已上传文件的大小,单位为字节。 |
$_FILES[‘myFile’][‘tmp_name’] | 文件被上传后在服务端储存的临时文件名,一般是系统默认 |
重要函数 move_uploaded_file(‘临时路径’,‘上传到哪’);
2.以上内容了解完 我们就可以开始了!
- 文件上传(小试身手)
// 静态代码
<body>
<h3>文件上传</h3>
<form action="ups.php" method='post' enctype="multipart/form-data">
// multipart/form-data 多类型数据上传
<p><input type="file" name="test"></p>
<p><input type="submit" value="上传"></p>
</form>
</body>
// php处理代码
$sfile = $_FILES['test']['tmp_name']; // 临时路径保存
$dfile = 'upload/' . $_FILES['test']['name']; // 获取文件名字
if (move_uploaded_file($sfile, $dfile)) {
echo "上传成功";
}
看完之后感觉好简单? 不就是文件移动吗!
那么你就错了 文件上传 要判断类型 大小 后缀名 等一切因素 下面我们就来做一个文件上传的完整实例
- 文件上传(仔细看)
$sfile = $_FILES['test']['tmp_name']; // 获取临时路径
// 文件夹利用
$updir = 'upload';
if (!file_exists($updir)) {
mkdir($updir); // 不存在即进行创建
}
$tim = date('Y-m-d'); // 获取年月日
$datedir = $updir . '/' . $tim; // 文件夹名字
if (!file_exists($datedir)) {
mkdir($datedir);
}
// 获取文件后缀
$farr = explode('.', $_FILES['test']['name']); // 以.分割数组
$fext = array_pop($farr); // 弹出最后一个数组
// // 加工文件名字
$frand = time() . mt_rand(1, 1000); // 使用随机数 进行反爬以及安全防护
// 最终路径
$dfile = $datedir . '/' . $frand . '.' . $fext;
$dx = $_FILES['test']['size'];
$dxsize = 1 * 1024 * 1024; // 默认字节转化为MB
$size = ceil(($dx / 1024)) . 'Kb';
// 设置条件 文件类型和大小
$allows = array('jpg', 'png', 'gif', 'txt', 'exe','ppt');// 实际情况而定
if (in_array($fext, $allows)) { // 判断是否在数组中
if ($dx <= $dxsize) {
move_uploaded_file($sfile, $dfile);
echo "上传成功" . '大小为' . $size . '即将自动跳转';
// PHP默认最大上传2-100MB 当出现上传报错时 注意检查php.ini和httpd.conf文件
header("Refresh:2;url=http://localhost:81/fx/up.php");
} else {
echo "<script>alert('文件请小于1Mb')</script>";
header("Refresh:1;url=http://localhost:81/fx/up.php");
}
} else {
echo "<script>alert('不支持此类型,只允许上传 jpg|gif|txt|ppt|')</script>";
header("Refresh:1;url=http://localhost:81/fx/up.php");
}
// header("Refresh:1;url=http://localhost:81/fx/up.php"); 1s之后跳转到指定页面
耐心看 没有那么难 主要是后缀名以及文件夹的设定!
别扒拉了 没有文件下载 明天持续更新!
- 你学会了吗?
- 来自一个向IT行业发展的小白一枚,