为什么上传文件不能用于错误检查?

时间:2015-05-10 14:20:18

标签: php

我刚刚提到this doc进行错误处理。

 /*foreach ($_FILES["file"]["error"] as $key => $error) {
    print_r($error);
    if ($error == UPLOAD_ERR_OK) {
        move_uploaded_file($_FILES['file']['tmp_name'], $path);
    }
  }*/

  if(is_uploaded_file($_FILES['file']['tmp_name']) && move_uploaded_file($_FILES['file']['tmp_name'], $path)) 
  {
    die('{"success":"The file ".  basename( $_FILES["file"]["name"]).  has been uploaded"}');
  }else
  {
    die('{"error" :  "There was an error uploading the file, please try again!"}');
  }

如果我使用注释部分取消注释,我的文件不会上传。但我提到文档来处理大小,扩展错误。如果我理解错误,请告诉我。

如果我在控制台中尝试print_r($_FILES),则不会打印任何内容。 我如何使我的forst方法工作。

1 个答案:

答案 0 :(得分:0)

如果您说$ _FILES全局数组为空,可能会出现一些问题。我先从检查开始:

1)您是否在表单上正确设置了enctype ='multipart / form-data'? 2)如果php.ini max post size变量小于文件大小,则不会抛出任何错误......它只会失败。尝试在站点根目录中为.htaccess文件添加以下覆盖。

的post_max_size = 20M 的upload_max_filesize = 20M

替换20M,无论您想要上传的文件是否最大。你可以回显ini_get(“post_max_size”)以确保它覆盖php.ini。