上传文件无法正常工作

时间:2013-02-22 11:20:35

标签: php file-upload

我无法在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数组中没有存储任何内容。

由于

詹姆斯

5 个答案:

答案 0 :(得分:4)

听起来你需要在php.ini文件中增加Apache设置的限制:

post_max_size=50M
upload_max_filesize=50M

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

答案 1 :(得分:2)

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

但是,您还需要考虑完成上传所需的时间。 PHP脚本通常会在30秒后超时,但10MB文件在健康的宽带连接上上传至少需要3分钟(请记住,上传速度通常比下载速度慢5倍)。此外,操纵或保存上载的图像也可能导致脚本超时。因此,我们需要将PHP的max_input_timemax_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/

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

示例10MB:

 upload_max_filesize = 10M 
 post_max_size = 10M

答案 4 :(得分:0)

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