【问题标题】:Can't Upload big files with PHP (tried all other answers)无法使用 PHP 上传大文件(尝试了所有其他答案)
【发布时间】:2013-02-25 18:26:34
【问题描述】:

我更改了 php.ini 文件并在我的页面顶部添加了一个 set_time_limit(0),但我仍然无法使用 php 上传大文件。我也在使用 ajax 和 javascript 来上传,我可以上传 400Mb 的文件。我试图在 WAMP 上上传一个 3.2GB 的文件。

我的代码:

<?php
set_time_limit(0);
session_start();
include('../Connect/Connect.php');

$User = $_SESSION['User'];
$Files = $_FILES['File'];
if(isset($User))
{
    if(!empty($Files))
    {
        for($X = 0; $X < count($Files['name']); $X++)
        {
            $Name = $Files['name'][$X];
            $TMP = $Files['tmp_name'][$X];

            move_uploaded_file($TMP, '../Users/' . $User . '/' . $Name);
        }
    }
}
else
{
    header("location:../"); 
}
header("location:index.php");
$Connect->close();
?>

【问题讨论】:

  • 所以您是说您可以在 5 分钟内上传 3.2 GB?如果是,那我真希望我有你的互联网连接......
  • 这个问题应该有助于解释您可能遇到的问题。stackoverflow.com/questions/864570/very-large-uploads-with-php
  • 对不起,我真的不应该那么讽刺。请检查 max_input_time ...
  • 那么....当您尝试上传一个大文件而不是“它不起作用”时会发生什么?
  • 检查您的 apache 错误日志。

标签: php javascript jquery ajax xmlhttprequest


【解决方案1】:
  • 检查您的浏览器,它是否支持 >2 GB 文件
  • 将 POST_MAX_SIZE 设置为高于 UPLOAD_MAX_FILESIZE(当然设置 设置中的正常值,不像 memory_limit 10 000GB ....
  • max_input_time 例如设置为 30000
  • 检查 x64 或 x86 操作系统/浏览器
  • 在 debian 上出现 php 5.3.21 错误,它不允许 >2GB 文件导致 PHP 中的错误 -> 它只是给你一个机会,你可能会得到 php 版本的 atoi() 和 atol() 转换错误。

【讨论】:

  • 我做了所有这些我认为我说错了我的问题,文件总数是 104 等于 3.2GB 我只是在测试我的服务器的带宽以及它可以处理多少,也许有php上传104个文件的问题...
  • 在 UPLOAD_MAX_FILESIZE 下查看,有:MAX_FILE_UPLOADS => 将其设置为 200,然后尝试您的 104 个文件。未来:这些问题你必须一步一步测试,可以上传1个文件吗?试试104个文件,104个文件不行?尝试 50 个文件等等....并尝试尝试,然后你会发现可能是什么问题。分析它是否总是在 X 时间后或上传 X MB 后出现错误。无论如何,正如有人在这里写的那样:检查你的 apache 错误日志;)
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 2022-12-18
  • 2016-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
相关资源
最近更新 更多