php文件上传(视频图片或者其他)

html页面

<html>

<head>

    <meta charset="utf-8">

    <title></title>

</head>

<body>

<form action='index.php' method=post enctype="multipart/form-data">
    
    <!-- 上传文件限制,会在传递至index.php之前先执行验证文件大小,value为上传文件的最大值 ,单位为b,600000为600kb-->
    <input type="hidden" name="MAX_FILE_SIZE" value="600000">
    
    <input type="file" name="upfile">

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

</form>

</body>

</html>

 

php

<?php
header("Content-type:text/html;charset=UTF-8");
/**

 * PHP上传视频

 */

$upfile = $_FILES['upfile'];

 

function upload_file($files, $path = "./upload",$imagesExt=['jpg','png','jpeg','gif','mp4'])
{
    
    // 判断错误号
    if ($files['error'] == 00) {

        
        $ext = strtolower(pathinfo($files['name'],PATHINFO_EXTENSION));
        // 判断文件类型
        if (!in_array($ext,$imagesExt)){

            return "非法文件类型";

        }

        // 判断是否存在上传到的目录

        if (!is_dir($path)){

            mkdir($path,0777,true);

        }

        // 生成唯一的文件名

        $fileName = md5(uniqid(microtime(true),true)).'.'.$ext;

        // 将文件名拼接到指定的目录下

        $destName = $path."/".$fileName;

        // 进行文件移动

        if (!move_uploaded_file($files['tmp_name'],$destName)){

            return "文件上传失败!";

        }

        return "文件上传成功!";

    } else {

        // 根据错误号返回提示信息

        switch ($files['error']) {

            case 1:

                echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";

                break;

            case 2:

                echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";

                break;

            case 3:

                echo "文件只有部分被上传";

                break;

            case 4:

                echo "没有文件被上传";

                break;

            case 6:
          echo "找不到临时文件夹";
          break; case 7: echo "系统错误"; break; } } } var_dump(upload_file($upfile)); ?>

 

posted @ 2019-06-13 09:41  钧一  阅读(1403)  评论(0编辑  收藏  举报