什么?php文件上传那么简单?

阅读本文 ,大概需要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行业发展的小白一枚,
Lost time is never found again. 
  岁月既往,一去不回。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值