zoukankan      html  css  js  c++  java
  • PHP文件上传及注意事项

      1.form表单通过action指向php页面进行提交

      下面是form.html页面

    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <form action="upload_file.php" method="post" enctype="multipart/form-data" id="form-data">
            <label for="file">请选择要上传的文件</label>
            <input type="file" name="file" id="file">
            <input type="submit" name="sub" value="上传">
        </form>
    </body>
    </html>

      form的enctype属性是用来规定发送到服务器之前应该如何对表单进行编码,默认值为application/x-www-form-urlencoded,会对所有数据字符进行编码,但是如果要表单包含上传大文件,则必须改为multipart/form-data,即不对数据字符编码。

      2.点击上传提交到php页面处理文件

      下面是upload_file.php页面

    <?php
    header("content_type: text/html;charset=utf-8");//规定编码格式为utf-8
    $allowedExts = array("txt");    //包含允许上传的文件的后缀名的数组
    $temp = explode(".", $_FILES["file"]["name"]);    
    $extension = end($temp);    //获取文件的后缀名
    if($_FILES["file"]["type"] == "text/plain" && in_array($extension,$allowedExts)){    //判断文件的格式以及后缀名是否符合上传要求
        if($_FILES["file"]["error"]>0){    //判断文件是否损坏
            echo "错误:".$_FILES["file"]["error"]."<br>"; 
        }else{
            echo "上传文件名:".$_FILES["file"]["name"]."<br>";
            echo "文件类型:".$_FILES["file"]["type"]."<br>";
            echo "文件大小:".$_FILES["file"]["size"]."<br>";
            echo "文件临时存储位置:".$_FILES["file"]["tmp_name"]."<br>";
            if(file_exists("/home/acer/下载/upload/".$_FILES["file"]["name"])){    //判断文件是否存在
                echo $_FILES["file"]["name"]."文件已存在。";
            }else{
                move_uploaded_file($_FILES["file"]["tmp_name"], "/home/acer/下载/upload/".$_FILES["file"]["name"]);        //存储文件
                echo "文件存储在:"."/home/acer/下载/upload/".$_FILES["file"]["name"]."<br>";
            }
        }
    
    }else{
        echo "非法大文件格式"."<br>";
    }

      其中“/home/acer/下载/upload/”是存储文件夹的跟路径,

      “text/plain”是文件类型,详见https://www.cnblogs.com/wang1204/p/5644827.html

     效果如下

       

      

  • 相关阅读:
    转发和重定向的区别
    关于Daydream VR的最直白的介绍
    Duplicate Protocol Definition of DTService Is Ignored
    automatically select architectures
    java
    初识反射
    java网络编程
    Map接口
    Set,List
    正则表达式
  • 原文地址:https://www.cnblogs.com/zxbs12345/p/9072476.html
Copyright © 2011-2022 走看看