• php 实现接收客户端上传的图片


    今天,遇到一个服务端接收客户端上传图片的需求,经过学习。我写了个简单的demo

    以备下次学习。

    首先服务器接收的发送图片的请求一定要是post请求,而且请求一定要加上 enctype="multipart/form-data" 缺一不可

    下面是例子,写个简单的浏览器端的:

    <html>
    <head>
    <title> Upload file example. </title>
    </head>
    <body>
    <form method="post" action="recpic.php" enctype="multipart/form-data">
         <table border=0 cellspacing=0 cellpadding=0 align=center width="100%">
          <tr>
            <td width=55 height=20 align="center"><input type="hidden" name="MAX_FILE_SIZE" value="2000000">文件: </TD>
            <td height="16">
            <input name="file" type="file" />
            <!--这里指定了上传后所在临时数组的名称-->
            <input type="submit" name="submit" value="Submit" />
            </td>
          </tr>
         </table>
         </form>
    </body>
    </html>
    <?php
    /**
     * 接收上传的图片
     * 
     * ------------
     * 200 ok
     * 401 Error method
     * 500 Internal error
     * ------------
     */
    require_once("../inc/connect_db.php");
    require_once("../response.php");
    header('Access-Control-Allow-Origin: *');   // 解决前段javascript跨域请求
    
    //print_r($_FILES);
    
    $filename = $_FILES['file']['name'];
    $tmp_name = $_FILES['file']['tmp_name'];
    
    //将服务器上的临时文件移动到指定目录下
    
    //使用该方法move_uploaded_file($tmp_name , $destination)
    
    move_uploaded_file($tmp_name , "../files/".$filename);
    
    echo $filename;
    exit();

    上文有注释不赘述,这里还搜集了一些关于上传文件$_FILES()的重要方法:

    $_FILES['myFile']['name'] 显示客户端文件的原名称。
    $_FILES['myFile']['type'] 文件的 MIME 类型,例如"image/gif"。
    $_FILES['myFile']['size'] 已上传文件的大小,单位为字节。
    $_FILES['myFile']['tmp_name'] 储存的临时文件名,一般是系统默认。
    $_FILES['myFile']['error'] 该文件上传相关的错误代码。以下为不同代码代表的意思:
    0; 文件上传成功。
    1; 超过了文件大小php.ini中即系统设定的大小。
    2; 超过了文件大小MAX_FILE_SIZE 选项指定的值。
    3; 文件只有部分被上传。
    4; 没有文件被上传。
    5; 上传文件大小为0。
    

      

  • 相关阅读:
    linux-01-04(创建文件夹mkdir,进入目录命令cd,创建文件命令 echo cp vim touch等,批量创建文件操作)
    linux-05(tar命令的使用)
    linux-06(移动命令mv)
    linux-07(复制命令cp)
    linux-08(查看命令历史记录history)
    cookie
    vue-router路由懒加载
    setTimeout async promise执行顺序总结
    forEach陷阱
    函数节流与函数防抖之间的区别
  • 原文地址:https://www.cnblogs.com/wobeinianqing/p/5475335.html
Copyright © 2020-2023  润新知