• 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 "上传失败";
        }
        

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

  • 相关阅读:
    jsp 生成验证码代码
    成为Java顶尖程序员 ,看这11本书就够了
    自动清除浏览器缓存-Cache Killer
    移动端-ios-上拉加载卡顿
    移动端-ios-点击阴影去除
    转--Android开发实践:使用Service还是Thread
    Android入门:Handler简介与实例
    Spring事务的隔离级别
    ThreadLocal的内存泄漏问题
    Spring 使用注解方式进行事务
  • 原文地址:https://www.cnblogs.com/xidongyu/p/5541691.html
Copyright © 2020-2023  润新知