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

    1、服务器端配置


    在进行文件上传时需要先配置一下服务器,开启文件上传、指定上传文件的max_size,上传的文件保存的临时目录等。因为文件是采用post方式进行上传的所以,需要修改一下post的大小

    • 编辑php.ini

      

        

    2、客户端页面


     

    • 错误的方式
    <!DOCTYPE html>
    <html>
    <head>
    <title>文件上传</title>
    </head>
    <body>
        <form action="test.php" method="post">
            <input type="text" name="id">
            <input type="file" name="sql">
            <button type="submit">上传</button>
        </form>
    </body>
    </html>

    上面的代码提交的服务器时是拿不到上传的文件的,我们先看看执行结果。 <?php print_r($_POST)?>;

    我们在服务器只拿到了文件的名称,而并未得到文件的真的内容

    • 正确的方式
    <!DOCTYPE html>
    <html>
    <head>
    <title>文件上传</title>
    </head>
    <body>
        <form action="test.php" method="post" enctype="multipart/form-data">
            <input type="text" name="id">
            <input type="file" name="sql">
            <button type="submit">上传</button>
        </form>
    </body>
    </html>

    服务器端代码 <?php print_r($_POST); echo '<br>'; print_r($_FILES); 

    • 多文件上传
    <!DOCTYPE html>
    <html>
    <head>
    <title>文件上传</title>
    </head>
    <body>
        <form action="test.php" method="post" enctype="multipart/form-data">
            <input type="text" name="id">
            <input type="file" name="sql[]">
            <input type="file" name="sql[]">
            <button type="submit">上传</button>
        </form>
    </body>
    </html>

     服务器端代码不变,其执行结果为:

    3、服务器文件上传


    <?php
        //错误检查
        if($_FILES['sql']['error'] > 0){
            exit(0);
        }
    
        //文件大小检查
        $maxSize = 5*1024*1024;
        if($_FILES['sql']['size'] > $maxSize){
            exit(0);
        }
    
        //文件类型检测,以后缀名检测
        $allowType = 'sql';
        $arr = explode('.', $_FILES['sql']['name']);
        $hz = $arr[count($arr)-1];
        if($hz != $allowType){
            echo 'file type error';
            exit(0);
        }
    
        $filepath = './uploads';
        $randname=data('Y').data('m').data('d').data('H').data('i').data('s').rand(100, 999).$hz;
        //将文件从临时目录取出
        if(is_uploaded_file($_FILES['sql']['tmp_name'])){
            if(move_uploaded_file($_FILES['sql']['tmp_name'], './uploads/'.$_FILES['sql']['name']))
                echo '上传成功';
            else
                echo "上传失败";
        }
        

     注意上面这些代码是文件已经完全上传到服务器才执行的!

  • 相关阅读:
    微信带参数的小程序码生成并上传到七牛云(java)
    数据结构-数组和广义表-思维导图
    数据结构-串-思维导图
    数据结构-栈与队列-思维导图
    数据结构-线性表-思维导图
    python 拆分csv文件
    记录自己写js一个bug
    win10快捷键收藏
    重装系统win10最新版(完整版)
    formController的函数的基本作用
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5541691.html
Copyright © 2011-2022 走看看