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 配置,让服务端支持更大的单个上传文件

  • 相关阅读:
    ASP.NET MVC 重点教程一周年版 第二回 UrlRouting
    ASP.NET MVC 重点教程一周年版 第三回 Controller与View
    DynamicData for Asp.net Mvc留言本实例 下篇 更新
    Asp.net MVC视频教程 18 单选与复选框
    使用ASP.NET MVC Futures 中的异步Action
    ASP.NET MVC RC 升级要注意的几点
    ATL、MFC、WTL CString 的今生前世
    msvcprt.lib(MSVCP90.dll) : error LNK2005:已经在libcpmtd.lib(xmutex.obj) 中定义
    关于Windows内存的一些参考文章
    Windows访问令牌相关使用方法
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/11587466.html
Copyright © 2011-2022 走看看