用于文件上传的PHP脚本 - 无法上传大于1MB的文件

时间:2017-08-15 16:22:52

标签: php .htaccess file-upload upload

我使用PHP脚本将doc / docx / pdf上传到我的服务器。只要文件大小不超过1MB,我就不会对上传产生任何问题,但是当它大约1MB时,它根本就不会上传。

我将.htaccess中的值更新为以下内容:

php_value upload_max_filesize 10M
php_value post_max_size 10M
php_value max_input_time 300
php_value max_execution_time 300
php_value memory_limit 96M

日志文件中没有错误或警告。我使用以下代码上传文件:

    $checkUpload = $_FILES["fileToUpload"]["name"];
    $target_dir = realpath(dirname(__FILE__)) . "/uploads/";
    $temp = explode(".", $_FILES["fileToUpload"]["name"]);
    $newfilename = 'newfilename' . end($temp);
    $target_file = $target_dir . $newfilename;
    $uploadOk = 1;
    $imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
    if ($_FILES["fileToUpload"]["size"] > 500000) {
        $uploadOk = 0;
    }
    if (($imageFileType != "pdf") && ($imageFileType != "doc") && ($imageFileType != "docx")) {
        echo "wrong format!";
        die();
    }
    if ($uploadOk == 0) {
        echo "Sorry, your file was not uploaded.";
    } else {
        if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_dir . $newfilename)) {
        } else {
            echo "Sorry, there was an error uploading your file.";
        }
    }

我在更新后重新启动了apache并使用以下脚本检查了最大大小:

$max_upload = (int)(ini_get('upload_max_filesize'));
$max_post = (int)(ini_get('post_max_size'));
$memory_limit = (int)(ini_get('memory_limit'));
$upload_mb = min($max_upload, $max_post, $memory_limit);
echo $upload_mb;

以上确认最大尺寸为10M。我甚至没有考虑上传超过5MB的内容,也无法弄清问题是什么。

E:我改变了php.ini中的值,但它仍然不起作用。我在debian 8上使用PHP 7.0和apache 2.4。

E2:我尝试使用WordPress插件(Caldera Forms)上传文件,经过几次战斗,这似乎是通过常规上传文件夹(即使是4MB文件)。问题是,我不认为使用插件是一种解决方案,我想了解为什么我不能这样做。

我目前收到以下警告:

PHP警告:move_uploaded_file():无法移动' / tmp / phpThmBZJ' to' /var/www/mywebsite.com/uploads/form_uploads/1234.doc'在第85行的/var/www/mywebsite.com/public_html/wp-content/themes/mytheme/add_file.php中,引用者:http://mywebsite.com/

它会建议许可问题,但是:

  • 火山口表格文件仍在通过
  • 我确定了 apache目前是www的所有者和相关的上传 文件夹
  • 上传文件夹权限设置为755

更新:自从我开始收到上述警告后,我甚至无法上传小文件。

感谢您的帮助, 即

0 个答案:

没有答案