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

    PHP中使用文件域上传文件,需要几个步骤,首先先判断有无文件域,然后判断是否选择了文件,最后判断文件是否上传成功。

    需要注意的是 表单中有文件域,必须将method设置为post, enctype设置为multipart/form-data

    在文件上传时会给服务端以数组的形式返回几个值,如下:

    
        //array(5) {
        //  ["name"]=>
        //  string(25) "mmexport1534732827710.jpg"
        //  ["type"]=>
        //  string(10) "image/jpeg"
        //  ["tmp_name"]=>
        //  string(26) "C:WindowsTempphpD9E.tmp"
        //  ["error"]=>
        //  int(0)
        //  ["size"]=>
        //  int(145606)
        //}

    其中''name"为上传文件名,"type"为上传文件类型,"tmp_name"为上传文件后所存放的路径,"error"为上传文件的错误问题,"size"为上传文件的大小。

    具体代码如下:

    <?php 
    function upload() {
        if (!(isset($_FILES['avatar']))) {
            //是否有文件域
            $GLOBALS['message'] = '没有上传文件';
            return;
        }
        $avatar = $_FILES['avatar'];
        var_dump($avatar);
        if ($avatar['error']!==UPLOAD_ERR_OK) {
            //服务端没有接受到上传的文件
             $GLOBALS['message'] = '上传失败';
             return;
        }
        //接收到了文件
        //将文件从临时目录移动到网站范围内
        $source=$avatar['tmp_name'];   //源文件路径
        $target='./uploads/' . $avatar['name'];    //目标路径
        //==>./uploads/mmexport1534732827710.jpg
        $moved=move_uploaded_file($source, $target);
        if (!$moved) {
             $GLOBALS['message'] = '上传失败';
             return;
        }
        //移动成功===>上传成功
         $GLOBALS['message'] = '上传成功';
    
    }
    if ($_SERVER['REQUEST_METHOD']==='POST') {
        //接受文件  使用一个 叫做$_FILES 超全局成员
        //var_dump($_FILES);
        upload();
    }
    
    
     ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>文件域</title>
    </head>
    <body>
        <!-- 表单中有文件域,必须将method设置为post, enctype设置为multipart/form-data -->
        <!-- enctype 默认是urlencoded 格式   key1=value1&key2=value2 -->
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
            <input type="file" name="avatar">
            <button>上传</button>
            <?php if (isset($message)): ?>
                <?php echo $message ?>
            <?php endif ?>
        </form>
    </body>
    </html>
  • 相关阅读:
    LeetCode:数组(三)
    LeetCode:数组(二)
    LeetCode:数组(一)
    python实现栈的基本操作
    python基本内置函数
    Pycharm的常见Debug调试方法(持续更新)
    计算广告系列(一)-基本概念整理
    es与solr对比
    数据库优化
    java线程池
  • 原文地址:https://www.cnblogs.com/Yaucheun/p/10308804.html
Copyright © 2011-2022 走看看