Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP和Apache不上载和处理大型文件_Php_Apache_File Upload_Large Data - Fatal编程技术网

PHP和Apache不上载和处理大型文件

PHP和Apache不上载和处理大型文件,php,apache,file-upload,large-data,Php,Apache,File Upload,Large Data,当我尝试使用HTML表单和PHP将一个大文件(65MB.exe)上载到我的网站时,即使文件上载到服务器,也不会调用处理上载文件的PHP代码,当我上载正常处理的较小文件时。我的ApacheErrorLog文件中未记录任何错误 我已更改了我的php.ini文件中的以下条目(如建议的,和),并使用phpinfo()(重新启动Apache并重新启动服务器后)验证新值是否正确加载,但问题仍然存在: memory_limit = -1 upload_max_filesize = 100M post_max_

当我尝试使用HTML表单和PHP将一个大文件(65MB
.exe
)上载到我的网站时,即使文件上载到服务器,也不会调用处理上载文件的PHP代码,当我上载正常处理的较小文件时。我的Apache
ErrorLog
文件中未记录任何错误

我已更改了我的
php.ini
文件中的以下条目(如建议的,和),并使用
phpinfo()
(重新启动Apache并重新启动服务器后)验证新值是否正确加载,但问题仍然存在:

memory_limit = -1
upload_max_filesize = 100M
post_max_size = 150M
max_input_time = 10800
max_execution_time = 10800
我还尝试在我的
.htaccess
文件中设置这些值(
AllowOverride AuthConfig FileInfo Indexes Limit Options=All,在
apache2.conf
文件中的
下设置了多视图,结果相同:

php_value memory_limit -1
php_value upload_max_filesize 100M
php_value post_max_size 150M
php_value max_input_time 10800
php_value max_execution_time 10800
max\u input\u time
max\u execution\u time
选项远高于上传文件实际所需的时间(30分钟)

我在安装了Ubuntu 14.04的服务器上运行PHP版本5.5.9和Apache版本2.4.7

应处理上载文件的代码:

    if (isset($_POST['sent']))
{
    $_SESSION['successfulupload']=0.1;
    $version=isset($_POST['version']) ? $_POST['version'] : '';
    $required=isset($_POST['required']) ? $_POST['required'] : '';
    $changelog=nl2br(isset($_POST['changelog']) ? $_POST['changelog'] : '');
    date_default_timezone_set('UTC');
    $date=date("d/m/y"); 
    $public=isset($_POST['public']) ? $_POST['public'] : '';
    if ($_FILES["program"]["error"]== UPLOAD_ERR_OK)
    {
        $_SESSION['successfulupload']=0.2;
        if ($_FILES["program"]["size"]>0)
        {
            $_SESSION['successfulupload']=0.3;
            $originalname = $_FILES["program"]["name"];
            $fileformat = $ext = end((explode(".", $originalname)));
            $tmp_name = $_FILES["program"]["tmp_name"];
            $name = "vStrips Installer Version " . $version . "." . $fileformat;
            if (move_uploaded_file($tmp_name, $_SERVER["DOCUMENT_ROOT"] . "/programs/" . $name))
            {
                $_SESSION['successfulupload']=0.4;
                $link="/programs/" . $name;
                $mysql_host = "xxxxx";
                $mysql_database = "vstrips_root";
                $mysql_user = "vstrips_root";
                $mysql_password = "xxxxx";
                $con=mysqli_connect($mysql_host,$mysql_user,$mysql_password,$mysql_database);
                if (mysqli_connect_errno())
                {
                    $_SESSION['error']="Error: Failed to connect to MySQL database.";
                    die("");
                }
                $_SESSION['successfulupload']=0.5;
                $query="INSERT INTO downloads (version, date, required, changelog, link, public)
                        VALUES ('$version', '$date', '$required', '$changelog', '$link', '$public')";
                if (mysqli_query($con, $query))
                {
                    $_SESSION['successfulupload']=1;
                    echo "vStrips uploaded to website.";
                }
                else
                {
                    $_SESSION['error']="Error: " . mysqli_error($con);
                }
            }
            else
            {
                $_SESSION['error']="Error! Failed to move file from temp location.";
            }
        }
        else
        {
            $_SESSION['error']="Error! File has no content.";
        }
    }
    else
    {
        $_SESSION['error']="Error! Failed to upload file.";
    }
}

var\u转储($\u文件)
错误
条目说了什么…?我无法访问它,因为代码没有走那么远-表单被发送到
$\u服务器[“PHP\u SELF”]
,但是
if(isset($\u POST['sent'])if(isset($\u POST['sent'])中的代码吗
block?当然-添加到问题中。配置PHP将错误写入日志文件。