php之文件上传

<?php

// 文件上传

// PHP使用一个超全局变量:$_FILES 来处理文件上传

// 1. 配置上传参数
// 允许上传的文档类型
$fileType = ['jpg', 'jpeg', 'png', 'gif'];

// 设置允许上传的文件最大长度
$fileSize = 3145728;

// 上传到服务器上的指定的目录
$filePath = '/uploads/';

// 原始的文件名
$fileName = $_FILES['my_file']['name'];

// 上传到服务器上的临时文件名
$tempFile = $_FILES['my_file']['tmp_name'];


// 2. 判断文件是否上传成功?
//$_FILES['my_file']['error'], 0: 表示成功,大于1出错
$uploadError = $_FILES['my_file']['error'];
if ($uploadError > 0) {
    switch ($uploadError) {
        case 1:
        case 2: die('上传文档不允许超过3M');
        case 3: die('上传文件不完整');
        case 4: die('没有文件被上传');
        default: die('未知错误');
    }
}


// 3. 判断文件扩展名是否正确?
//girl.jpg

//['girl', 'jpg']

$extension = explode('.', $fileName)[1];
if (!in_array($extension, $fileType)) {
    die('不允许上传' . $extension . ' 文件类型');
}

// 4. 为了防止同名覆盖, 将上传的文件重命名: md5+时间戳
$fileName = date('YmdHis',time()).md5(mt_rand(1,99)). '.' . $extension;

// 5. 上传文件
if (is_uploaded_file($tempFile)) {
    if (move_uploaded_file($tempFile, __DIR__. $filePath.$fileName)){
        echo '<script>alert("上传成功");history.back();</script>';
    } else {
        die('文件无法移动到指定目录, 请检查目录权限');
    }
} else {
    die('非法操作');
}

exit();

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件上传</title>
</head>
<body>
<!--请求类型必须是: post-->
<!--数据编码类型: 使用复合类型,通知服务器上传的是文件类型-->
<form action="demo4.php" method="post" enctype="multipart/form-data">
    <input type="file" name="my_file" id="">
    <input type="hidden" name="MAX_FILE_SIZE" value="3145728">
    <button>上传</button>
</form>
</body>
</html>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值