PHP 上传脚本为大于 100 Kb 的文件生成错误 500


php upload script produces error 500 for files larger than 100 Kb

我有以下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 文件,但想要它是否需要包含命令才能允许上传?

感谢您的帮助

这里有

一个小提示,您可以使用 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 的文件大小。

对于 1Mb。

在您的本地 php.ini:

upload_max_filesize = 1M
post_max_size = 1M

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

php_value upload_max_filesize 1M
php_value post_max_size 1M

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

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

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

这会将问题返回给您。

请记住删除实时应用程序的这些行(您不应向最终用户透露错误,因为它展示了可能被利用的弱点)。