PHP处理上传文件

HTML中使用type = 'file'类型的表单可以向服务器上传文件;

上传文件的表单必须在form中定义enctyp = 'multipart/form-data';

 

HTML代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>FileSubmit Document.</title>
  </head>
  <body>
    <form action="user.php" method="post" enctype="multipart/form-data" name="upvideo">
      上传文件:<input type="file" name="video" />
      <input type="submit" value="上传"/>
    </form>
    </form>
  </body>
</html>

 

PHP代码如下:

<?php

var_dump($_POST);
var_dump($_FILES);

if ($_FILES['video']['error'] > 0) {
  echo "Error:" .$_FILES['video']['error']. "</br>";
} else {
  print_r($_FILES['video']);

  if (is_uploaded_file($_FILES['video']['tmp_name'])) {
    $upfile = $_FILES['video'];
    // 获取数组里面的值
    $name = $upfile['name']; // 上传文件的文件名
    $type = $upfile['type']; // 上传文件的类型
    $size = $upfile['size']; // 上传文件的大小
    $tmp_name = $upfile['tmp_name']; //上传文件的临时存放路径
    // 移动上传的文件到指定目录
    move_uploaded_file($tmp_name, '/Library/WebServer/Documents/book/' . $name);
  }
}

注意:

使用print_r打印数据的时候发现第一个数组为空,这表明使用file类型表单提交数据时并不使用$_POST接受数据,而是使用全局变量$_FILES来接收;

· php默认上传文件的大小只有2MB;

 

例如要上传一个50MB的大文件,php.ini配置如下:

file_uploads = On

upload_tmp_dir = "/user/file"

upload_max_filesize = 50M

post_max_size = 100M

max_excution_time = 600

max_input_time = 600

posted @ 2018-03-01 08:41  MiraclesGG  阅读(182)  评论(0编辑  收藏  举报