Php 服务器端文件上载不稳定

Php 服务器端文件上载不稳定,php,apache,ubuntu,file-upload,upload,Php,Apache,Ubuntu,File Upload,Upload,我有一个应用程序,这取决于它上传文件的能力 然而,在我更改了PHP.init文件中的一些设置之后,我在上传文件时遇到了一些问题 首先是一些重要信息: 服务器是ubuntu 14.04 我使用的是Apache2.4 现在一切都开始于我的客户无法将更大的文件上传到我的服务器上。因此,我所做的是更改我的php.ini中的设置: (注意我在这里/etc/php5/apache2/php.ini) 应用这些更改后,我调用了命令:sudo-service-apache2-restart 然后我尝试上载一

我有一个应用程序,这取决于它上传文件的能力

然而,在我更改了PHP.init文件中的一些设置之后,我在上传文件时遇到了一些问题

首先是一些重要信息:

  • 服务器是ubuntu 14.04
  • 我使用的是Apache2.4
现在一切都开始于我的客户无法将更大的文件上传到我的服务器上。因此,我所做的是更改我的
php.ini
中的设置:

(注意我在这里
/etc/php5/apache2/php.ini

应用这些更改后,我调用了命令:
sudo-service-apache2-restart

然后我尝试上载一个大小如下的文件:
82.4MB

在php中,我使用以下函数来处理我的上载:

    public function uploadFile()
{
    if ($this->isAjax()) {
        $comp_id = $_POST['comp_id'];
        $name = $_FILES['file1']['name'];
        $name = substr($name, strpos($name, "."), strlen($name));
        switch ($name) {
            case '.jpg':
            case '.png':
            case '.jpeg':
            case '.bmp':
            case '.JPG':
            case '.PNG':
            case '.JPEG':
            case '.BMP':
                    $_FILES['file1']["name"] = "image_file".$name;
                break;
            case '.MP4':
            case '.mp4':
                $_FILES['file1']["name"] = "mp4_file".$name;
                break;
            case '.FLV':
            case '.flv':
            $_FILES['file1']["name"] = "flv_file".$name;
                break;
            case '.MP3':
            case '.mp3':
            $_FILES['file1']["name"] = "sound_file".$name;
            break;
            case '.docx':
            case '.txt':
            case '.pdf':
            case '.odt':
            case '.DOCX':
            case '.TXT':
            case '.PDF':
            case '.ODT':
                $_FILES['file1']["name"] = "document_file".$name;
                break;
            default:
                die("Unknown/not permitted file type");
        }
        $location = "./site/resources/upload/test_module/" . $comp_id . "/" . $_FILES['file1']["name"];
        if (!file_exists("./site/resources/upload/test_module/" . $comp_id . "/")) {
            mkdir("./site/resources/upload/test_module/" . $comp_id . "/", 0777, true);
        }
        move_uploaded_file($_FILES['file1']['tmp_name'],
            $location);

        chmod($location, 777);
        $path = "/site/resources/upload/test_module/" . $comp_id . "/" . $_FILES['file1']["name"];
        chmod($path, 777);

        switch ($name) {
            case '.jpg':
            case '.png':
            case '.jpeg':
            case '.bmp':
            case '.JPG':
            case '.PNG':
            case '.JPEG':
            case '.BMP':
                $this->getDatabase()->prepTemplate('UPDATE test_component SET image_path = ? WHERE id = ?', 'si', array($path, $comp_id));
                break;
            case '.MP4':
            case '.mp4':
                if ($_FILES['file1']['type'] != 'audio/mp3') {
                    $this->getDatabase()->prepTemplate('UPDATE test_component SET video_mp4_path = ? WHERE id = ?', 'si', array($path, $comp_id));
                } else {
                    $this->getDatabase()->prepTemplate('UPDATE test_component SET sound_path = ? WHERE id = ?', 'si', array($path, $comp_id));
                }
                break;
            case '.FLV':
            case '.flv':
                $this->getDatabase()->prepTemplate('UPDATE test_component SET video_flv_path = ? WHERE id = ?', 'si', array($path, $comp_id));
                break;
            case '.MP3':
            case '.mp3':
                $this->getDatabase()->prepTemplate('UPDATE test_component SET sound_path = ? WHERE id = ?', 'si', array($path, $comp_id));
                break;
            case '.docx':
            case '.txt':
            case '.pdf':
            case '.odt':
            case '.DOCX':
            case '.TXT':
            case '.PDF':
            case '.ODT':
                $this->getDatabase()->prepTemplate('UPDATE test_component SET text_path = ? WHERE id = ?', 'si', array($path, $comp_id));
                break;
            default:
                die("Unknown/not permitted file type");
        }
    }
}
从这个函数中可以看到,我试图设置文件夹和文件的权限,以确保以后可以访问它们

在上传的过程中,我试着遵循这个过程,注意到服务器上没有创建文件夹,也没有添加任何文件

所以我觉得上传在某种程度上失败了

在我更改php.ini中的设置之前,我可以上载较小的文件,但是现在我甚至无法上载大小为
4MB的文件。(或任何其他文件)

上传可以在我的本地机器上运行,没有任何问题,但不能在我的服务器上运行

以前有没有人经历过这种情况,或者知道它可能是什么

更新

添加错误打印后,我得到以下错误:

    Warning: chmod(): No such file or directory in /var/www/test_learningbank/site/pages/models/TestMaker.php on line 263

Warning: chmod(): No such file or directory in /var/www/test_learningbank/site/pages/models/TestMaker.php on line 265
打印出文件给了我:

{"name":"Vaks-DCK.mp4","type":"","tmp_name":"","error":1,"size":0}

这里值得注意的是,error=1,size=0???

您在许多
/site/resources/upload/test\u module/
中使用了一个点,但将其留给了
$path=“/site/resources/upload/test\u module/”
,这可能是一个促成因素。在打开
@Fred ii之后立即将错误报告添加到文件顶部-遗憾的是,这没有起到作用:sDid添加错误报告会返回任何错误/结果吗?文件夹是否也设置了写入权限?上载还需要enctype。@Fred ii-没有错误,也没有结果,但上载是使用ajax完成的,我以前可以上载,但现在我无法上载任何文件。@Fred ii-我在ajax中得到响应:警告:chmod():第259行的/var/www/test\u learningbank/site/pages/models/TestMaker.php中没有此类文件或目录警告:chmod():第261行的/var/www/test\u learningbank/site/pages/models/TestMaker.php中没有此类文件或目录
{"name":"Vaks-DCK.mp4","type":"","tmp_name":"","error":1,"size":0}