PHP简单文件上传

    这边只给出一个简单文件上传的demo,文件如果过大可以考虑使用分片上传。

    HTML文件

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>demo</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body>
    <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="file" id="file" /> 
      <br />
      <input type="submit" name="submit" value="upload" />
    </form>
  </body>
</html>
    PHP后台

<?php
  //重点说明 因为上传的是视频文件 所以文件大小会超出服务器及php的默认配置 需要手动修改配置
  //php配置文件php.ini
  //file_uploads on 是否允许通过HTTP上传文件的开关。默认为ON即是开
  // upload_tmp_dir – 文件上传至服务器上存储临时文件的地方,如果没指定就会用系统默认的临时文件夹
  // upload_max_filesize 8m 望文生意,即允许上传文件大小的最大值。默认为2M
  // post_max_size 8m 指通过表单POST给PHP的所能接收的最大值,包括表单里的所有值。默认为8M 

  //如果是nginx服务器还需要修改nginx的配置文件 下面是我的nginx修改后的配置 加入了client_max_body_size 100m;
  // server {
  //     listen       83;
  //     server_name localhost;
  //     root /usr/share/nginx/html;
  //     index index.php;
  //     client_max_body_size 100m;

  //     access_log /var/log/nginx/html-access.log;
  //     error_log  /var/log/nginx/html-error.log;

  //     location / {
  //         try_files $uri $uri/ /index.php?$args =404;
  //         #try_files $uri$args $uri$args/ index.php;
  //     }

  //     location ~ .*\.(php|php7.0)?$ {
  //         #fastcgi_pass   127.0.0.1:9000;
  //         fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
  //         include        fastcgi_params;
  //     }

  //     location ~ /\.(ht|svn|git) {
  //             deny all;
  //     }
  // }

  //修改完毕后要求重启php,以及服务器
  // sudo service php7.0-fpm restart (ubuntu下)
  // sudo service nginx restart(ubuntu下)


  //当前脚本文件所在目录
  define('ROOT_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR);

  //上传后的文件数据对象 文件信息都保存在这个数组中
  $file = $_FILES["file"];

  //格式及大小验证 只接收mp4, rmvb格式 文件大小限制100M 如需添加或更改则在此修改
  if (($file["type"] == "video/mp4" || $file["type"] == "video/rmvb") && $file["size"] < 100 * 1024 * 1024) {
    //上传是否成功判断
    if ($file["error"] > 0) {
      echo "错误信息: " . $file["error"] . "<br />";
    } else {
      //文件是否已经存在
      if (file_exists("upload/" . $file["name"])) {
        echo $file["name"] . " 已存在. ";
      } else {
        //是否是通过表单提交的文件
        if (is_uploaded_file($file['tmp_name'])) {
          //保存路径拼接 要求upload目录权限为777
          $save_path = ROOT_DIR . 'upload/' . basename($file['name']);

          //使用函数将上传的临时文件保存到自定义的目录
          if (move_uploaded_file($file['tmp_name'], $save_path)) {
            echo "上传成功, 文件保存在: " . $save_path;
          } else {
            echo '文件上传失败';
          }
        } else {
          echo '文件来源错误';
        }
      }
    }
  } else {
    echo "无效文件,只支持mp4,rmvb格式的100M文件";
  }
?>


猜你喜欢

转载自blog.csdn.net/u014788227/article/details/76582376