PHP之文件上传

作者: IT大表哥 | 来源:发表于2019-11-13 10:43 被阅读0次

    注意事项:

    1、表单中enctype=”multipart/form-data”是用于设置表单的MIME编码。

    2、全局变量 $_FILES的应用

    $_FILES[‘file’][‘name’]  为上传文件的原文件名

    $_FILES[‘file’][‘type’]  为上传文件的 MIME 类型

    $_FILES[‘file’][‘size’]  已上传文件的大小,单位为字节

    $_FILES[‘file’][‘tmp_name’]  文件被上传后在服务端储存的临时文件名()

    $_FILES[‘file’][‘error’]  文件上传的错误代码

    更详细的请参考:http://www.cnblogs.com/lichenwei/p/3879566.html

    上传文件的图形界面:

    <html>
    <head><title>实现一个简单的文件上传功能</title>
    <meta http-equiv=”content-type” content=”text/html;charset=utf-8″/></head>
    <body>
    <form enctype=”multipart/form-data” action=”file_upload_code(8_04).php” method=”post”>
    <input type=”hidden” name=”MAX_FILE_SIZE” value=”1000000″/>
    上传文件:<input type=”file” name=”user_file”>

    <input type=”submit” value=”上传”/>
    </form>
    </body>
    </html>

    上传的后台代码(file_upload_code(8_04).php):

    <?php
    header(“content-type:text/html;charset=utf-8”);

    //限制不能上传text格式的图片
    if($_FILES[‘user_file’][‘type’]==’text/plain’)
    {
    echo ‘<script>alert(“不能上传text格式的文件”);histroy.back();</script>’;
    exit();
    }

    //限制上传文件的大小
    define(‘MAX_SIZE’,2000000);//定义一个常量,固定上传文件的大小
    if($_FILES[‘user_file’][‘size’]>MAX_SIZE)
    {
    echo “<script>alert(‘不好意思,只能上传2M以内的文件’);histroy.back();</script>”;
    }

    //不同浏览器,格式不同(比如谷歌里ico文件的类型是image/x-icon,而IE里ico文件的类型是image/png),这里判断类型是否是数组里的一种
    $file_type=array(‘image/png’,’image/x-icon’);

    if(is_array(file_type))//检测是不是一个数组 { if(!in_array(_FILES[‘user_file’][‘type’],$file_type))
    {
    echo ‘<script>alert(“只允许上传png或者ico格式的文件”);histroy.back();</script>’;
    exit;
    }
    }

    if(_FILES[‘user_file’][‘error’]>0); { switch(_FILES[‘user_file’][‘error’])
    {
    case 1:
    echo ‘<script>alert(“上传的文件大小超过了约定值”);history.back();</script>’;
    break;
    case 2:
    echo ‘<script>alert(“上载文件大小超出了 HTML 表单的 MAX_FILE_SIZE 元素所指定的最大值。”);history.back();</script>’;
    break;
    case 3:
    echo ‘<script>alert(“只有部分文件上传”);history.back();</script>’;
    break;
    case 4:
    echo ‘<script>alert(“没有任何文件上传”);history.back();</script>’;
    break;
    }
    }
    /*dirname:返回路径中的目录部分
    */
    //创建一个常量,固定上传的位置
    define(“url”,dirname(FILE).’\you’);
    //判断目录是否存在
    if(!is_dir(url))
    {
    mkdir(url,0700);//0700最大权限,如果没有就创建目录
    }

    if(is_uploaded_file($_FILES[‘user_file’][‘tmp_name’]))
    {

    if(!move_uploaded_file(_FILES[‘user_file’][‘tmp_name’],url.’\\’._FILES[‘user_file’][‘name’]))
    {
    echo _FILES[‘user_file’][‘name’].”上传失败!”; } else { echo_FILES[‘user_file’][‘name’].”上传成功!”;
    }
    }else
    {
    echo “找不到上传的文件”;
    }
    ?>

    有错请指出,不懂的请在下方留言!

    相关文章

      网友评论

        本文标题:PHP之文件上传

        本文链接:https://www.haomeiwen.com/subject/thkhictx.html