php upload脚本为大于100 Kb的文件产生错误500

时间:2012-05-23 13:42:46

标签: php file-upload

我有以下php脚本

<?php


  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }

?>

任何人都可以帮助它上传大于100 Kb的pdf文件吗?

我已经检查过我的托管服务提供商,那里的一切都是正确的,我还检查了phpinfo(),其中指出应该允许上传到8 Mb

任何人都可以帮我指出正确的方向来解决这个问题,我的托管服务提供商建议我创建一个php.ini文件,但是想要命令是否需要包含以允许上传?

感谢您的帮助

3 个答案:

答案 0 :(得分:7)

这里有一个小技巧,您可以使用它来使用表单的文件字段和PHP中的move_uploaded_file()函数上传这么大的文件。

1)在Web服务器的根文件夹中创建.htaccess文件。

2)将以下代码放在.htaccess文件的旁边并保存。

php_value upload_max_filesize 8M
php_value post_max_size 8M
php_value max_execution_time 200
php_value max_input_time 200

现在,您可以使用html表单中的文件字段和PHP中提供的move_uploaded_file()函数以简单的方式将文件大小上传到8MB。

答案 1 :(得分:2)

对于1Mb。

在你当地的php.ini:

upload_max_filesize = 1M
post_max_size = 1M

如果不起作用,请添加到根目录中的.htaccess文件。

php_value upload_max_filesize 1M
php_value post_max_size 1M

答案 2 :(得分:2)

首先尝试Query Master的响应 - 这应该保证设置正确。如果这不能解决问题,那么,如果您收到500错误,则需要检查错误日志以找出问题的真正原因。

如果您无法检查错误日志,请在PHP文件的顶部添加

error_reporting(E_ALL);
ini_set('display_errors', 'on');

这将把问题告诉你。

请记住为实时应用程序删除这些行(您不应向最终用户显示错误,因为它会显示可能被利用的漏洞)。