【问题标题】:PHP file upload size is limited after changing upload_max_filesize on php.ini更改 php.ini 上的 upload_max_filesize 后,PHP 文件上传大小受到限制
【发布时间】:2015-11-29 21:17:56
【问题描述】:

我正在创建一个具有上传功能的在线画廊。我使用 PHP 上传图像并将其存储在 mysql 数据库中。似乎它不允许我上传超过 64KB 的文件。

以下是我的 HTML 代码

<form action="upload.php" method="POST" enctype="multipart/form-data">
    <label>File: </label>
    <input type="file" name="image" />
    <input type="submit" value="upload" name="submit"/>
</form>

上传.php代码

<?php

//file properties
if(isset($_POST['submit']))
{

    if(getimagesize($_FILES['image']['tmp_name']) == FALSE)
    {
        echo "Please select an image";
    }
    else
    {
        $image = addslashes($_FILES['image']['tmp_name']);
        $name = addslashes($_FILES['image']['name']);
        $image = file_get_contents($image);
        $image = base64_encode($image);
        saveimage($name,$image);
    }
}
displayimage();
function saveimage($name,$image){
        $con=mysql_connect("localhost","root","admin");
        mysql_select_db("brandon",$con);
        $qry = "insert into store(name,image) values('$name','$image')";
        $result = mysql_query($qry,$con);
        if($result){
            echo "<br/> Image uploaded";
        }else{
            echo "<br/> Image not uploaded";
        }
    }
//display image
function displayimage()
{
    $con=mysql_connect("localhost","root","admin");
    mysql_select_db("brandon",$con);
    $qry="select * from store";
    $result=mysql_query($qry,$con);
    while($row = mysql_fetch_array($result))
    {
        echo '<img height="300" width="300" src="data:image;base64,'.$row[2].' "> ';
    }
    mysql_close($con);
}

在我的数据库中,我设置了一个包含 3 列(id、name、image)的表。 ID 是自动增量和主要的。名称是 TEXT,图片是 LONGBLOB。

我正在使用 PHPstorm 和 PHP 5.6.3 版本。 Xampp 版本是 3.2.1。其他人建议在php.ini 上增加upload_max_limit,但这对我不起作用。我已将其更改为如下

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize=128M

; Maximum size of POST data that PHP will accept.
post_max_size=128M

max_memory 设置为 128M 和 60s 超时。

如果我上传一个小图像文件一切顺利,但如果我上传一个大图像文件,它会如下所示

  • 将我带到一个空白页面(回显功能未执行,但显示以前上传的图像)
  • 当我尝试访问另一个 php 文件时,它会无休止地加载。(它说在谷歌浏览器的左下角等待 localhost)
  • 当我尝试访问另一个 php 文件时,它显示“502 bad gateway”

请提前帮助和感谢

编辑 1:调试器、apache 和 mysql 错误日志显示没有错误。我重新启动了 XAMPP、PHPStorm 和我的 Chrome 浏览器,以使其再次进入工作状态(这允许我上传小图像文件并执行 php 文件,而不是无休止的加载和 502 错误网关)

编辑 2:已解决!我尝试从 localhost 启动它,而不是从 PHPStorm 自动启动。它工作得很好。

【问题讨论】:

    标签: php html mysql image file-upload


    【解决方案1】:

    更改php.ini 文件后,您是否重新启动了Xampp?在这种情况发生之前它不会生效。 此外,请检查有关错误网关错误的 PHP 和 Apache 错误日志,这可能会为您提供有关正在发生的事情的更多详细信息。

    【讨论】:

    • 添加了编辑 1。没有运气。
    • 好吧,你没有提到PHP日志,也许你说的“调试器”就是这个意思?我会尝试的另一件事是将 Apache 上的日志记录级别设置为“调试”,您应该获得更多信息。添加到您的虚拟主机配置文件:LogLevel notice 有关更多详细信息,请参阅link。如果运气不好,可能值得尝试重新安装 Xampp 或在另一台服务器或虚拟实例上进行测试。
    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2017-05-19
    • 2017-05-18
    • 2015-01-19
    相关资源
    最近更新 更多