zoukankan      html  css  js  c++  java
  • PHP文件上传

    开发中需要上传图片、音乐、视频等等,这种上传传递是二进制数据。

    1.1客户端上传文件

            文件域:

    <input type="file" name="image">

               表单的enctype属性:

              默认情况下,表单传递是字符流,不能传递二进制流,通过设置表单的enctype属性传递复合数据。 

              enctype属性的值有:

    1. application/x-www-form-urlencoded:【默认】,表示传递的是带格式的文本数据。

    2. multipart/form-data:复合的表单数据(字符串,文件),文件上传必须设置此值

    3. text/plain:用于向服务器传递无格式的文本数据,主要用户电子邮件

    1.2服务器接收文件

            超全局变量$_FILES是一个二维数组,用来保存客户端上传到服务器的文件信息。二维数组的行是文件域的名称,列有5个。

            1、$_FILES[][‘name’]:上传的文件名

            2、$_FILES[][‘type]:上传的类型,这个类型是MIME类型(image/jpeg、image/gif、image/png)

            3、$_FILES[][‘size’]:文件的大小,以字节为单位

            4、$_FILES[][‘tmp_name’]:文件上传时的临时文件

            5、$_FILES[][‘error’]:错误编码(值有0、1、2、3、4、6、7)0表示正确

    1.3将上传文件移动到指定位置

           函数:

    move_uploaded_file(临时地址,目标地址)

             代码:

    <body>
    <?php
    if(!empty($_POST)) {
        if($_FILES['face']['error']==0){  //上传正确
            //文件上传
            move_uploaded_file($_FILES['face']['tmp_name'],'./'.$_FILES['face']['name']);
        }else{
            echo '上传有误';
            echo '错误码:'.$_FILES['face']['error'];
        }
    }
    ?>
    <form method="post" action="" enctype='multipart/form-data'>
        <input type="file" name="face">
        <input type="submit" name="button" value="上传">
    </form>
    </body>

    1.4与文件上传有关的配置         

                 post_max_size = 8M:表单允许的最大值

                upload_max_filesize = 2M:允许上传的文件大小

                upload_tmp_dir =F:wamp mp:指定临时文件地址,如果不知道操作系统指定

                file_uploads = On:是否允许文件上传

                 max_file_uploads = 20:允许同时上传20个文件

     

  • 相关阅读:
    cf 427D Match & Catch 后缀数组
    cf 244c Checkposts 强连通分量
    NSPredicate的学习
    正则表达式
    NavigationBar &UINavigationItem& toolbar方法汇总
    区块股票数量
    吃什么
    selenium
    laravel5
    vim golang dev
  • 原文地址:https://www.cnblogs.com/shineguang/p/10987291.html
Copyright © 2011-2022 走看看