• 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>
  • 相关阅读:
    $(document).ready() 与$(window).load()
    关于.NET玩爬虫这些事 【初码干货】
    关于c# .net爬虫
    UIScollView Touch事件
    UISearchBar 点击X 按钮收键盘
    IOS7 UITableView一行滑动删除后 被删除行的下一行的点击事件将被忽略解决办法
    IOS 使用dispatch_once 创建单例
    IOS 定位 单例
    IOS拷贝文件到沙盒
    IOS后台运行
  • 原文地址:https://www.cnblogs.com/Yaucheun/p/10308804.html
Copyright © 2020-2023  润新知