1

我无法在 PHP 中读取大约 25mb 的大文件。我尝试将最大输入文件大小更改为 50mb,但它仍然无法正常工作。这是表单的代码。

<html>
<body>

<form action="parsed_xml.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

这是 PHP 文件的代码:

<?php
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  print_r ($_FILES["file"]);
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>

我没有收到任何错误,$_FILES 数组中没有存储任何内容。

谢谢

詹姆士

4

5 回答 5

4

在我看来,您需要增加 Apache 在您的 php.ini 文件中设置的限制:

post_max_size=50M
upload_max_filesize=50M

如果您无权访问 ini 文件,请让您的主机增加限制。

于 2013-02-22T11:22:12.100 回答
2

两个 PHP 配置选项控制最大上传大小:upload_max_filesizepost_max_size. 对于 10 兆字节的文件大小,两者都可以设置为“10M”。

但是,您还需要考虑完成上传所需的时间。PHP 脚本通常会在 30 秒后超时,但在正常的宽带连接上上传一个 10MB 的文件至少需要 3 分钟(请记住,上传速度通常比下载速度慢五倍)。此外,操作或保存上传的图像也可能导致脚本超时。因此,我们需要将 PHP 的max_input_time和设置max_execution_time为 300(以秒为单位指定 5 分钟)。

您可以设置然后使用:

  1. in php.ini - set these values and restart server
  2. set it in htaccess
  3. Set in your php code using ini_set

参考:http ://www.sitepoint.com/upload-large-files-in-php/

于 2013-02-22T11:23:20.553 回答
0

检查服务器的上传限制。您需要增加它才能上传大文件。

只需检查一下:您是否在更改配置后重新启动了 PHP 进程?

于 2013-02-22T11:26:13.703 回答
0

只需增加“php.ini”中的最大文件大小,或者如果您无权访问 php.ini,请在您的 Web 根目录中创建一个“.htaccess”。

示例 10MB:

 upload_max_filesize = 10M 
 post_max_size = 10M
于 2013-02-22T11:29:23.173 回答
0

如果您无法访问 php.ini 文件,请使用函数“ini_set”。

于 2013-02-22T21:51:01.763 回答