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

    type属性为 file 的 input 元素可以通过表单提交文件(上传文件),服务端PHP可以通过$_FILES获取上传的文件信息

    <?php
    
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      
      var_dump($_FILES); //接收文件,使用一个 叫做 $_FILES 超全局成员
    }
    
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    <body>
     
      <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    
        <input type="text" name="bar"> -->
        <input type="file" name="img">
    
        <button>提交</button>
    
      </form>
    </body>
    </html>

    ①如果一个表单中有文件域(文件上传),必须将表单的 method 设置为 post , enctype 设置为 multipart / form-data

    ②接收文件,使用一个叫做 $_FILES 超全局成员

    文件上传案例

    <?php
    
       if($_SERVER['REQUEST_METHOD']==='POST')
       {
            postback();
       }
    
    
       function postback(){
            if(!isset($_FILES['fileUpload'])){
            $GLOBALS['message'] ="客户端提交的表单内容中根本没有文件域";
            return;
            }
    
            $fileUpload=$_FILES['fileUpload'];
    
            echo $fileUpload['error'];
            if($fileUpload['error'] !== UPLOAD_ERR_OK){
                $GLOBALS['message']="上传失败"; //服务端没有接收到上传的文件
                return;
            }
    
            $sourceDir = $fileUpload['tmp_name'];  //源文件在哪
            $targetDir = './targetDir/' . $fileUpload['name']; //目标放在哪
            $moved=move_uploaded_file($sourceDir,$targetDir);
    
            if(!$moved){
                $GLOBALS['message']="上传失败";
                return;
            }
       }
    
    
    ?>
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>文件上传</title>
    </head>
    <body>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
        <input type="file" name="fileUpload">
        <button>上传</button>
    
        <?php  if(isset($message)):  ?>
        <?php  echo $message;?>
        <?php  endif ?>
    </form>
    </body>
    </html>

    ① $_FILES 是一个关联数组,键为表单的 name , 内容如下:

      array(1) {  

       ["fileUpload"]=>  

       array(5) {     

      ["name"]=>   

        string(17) "demo.jpg"    

       ["type"]=>    

       string(10) "image/jpeg"  

         ["tmp_name"]=>   

        string(27) "C:WindowsTempphp786C.tmp"   

        ["error"]=>    

       int(0)    

       ["size"]=>   

        int(29501)  

       }

    }

    ②修改 php.ini 中的 post_max_size配置,让服务端可以接受更大的请求体体积

    ③修改 php.ini中的 upload_max_filesize 配置,让服务端支持更大的单个上传文件

  • 相关阅读:
    Hadoop工作流--ChainMapper/ChainReducer?(三)
    什么是工作流?(二)
    Hadoop工作流概念学习系列总述(一)
    Hadoop的ChainMapper和ChainReducer使用案例(链式处理)(四)
    Azkaban是什么?(一)
    爬虫概念与编程学习之如何爬取视频网站页面(三)
    爬虫概念与编程学习之如何爬取视频网站页面(用HttpClient)(二)
    爬虫概念与编程学习之如何爬取网页源代码(一)
    net命令
    arp命令
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/11587466.html
Copyright © 2011-2022 走看看