【问题标题】:How To Increase Maximum File Upload Size (PHP)?如何增加最大文件上传大小 (PHP)?
【发布时间】:2013-06-09 01:32:02
【问题描述】:

我正在我的计算机上运行 XAMPP 服务器。我上传的最大文件大小为 24.3kb。我的服务器无法上传 78kb 的文件。我知道是因为我在尝试移动文件时得到一个空的 $_FILES['file']['tmp_name'] 和一个错误。

我进入 php.ini 并更改了两个变量:upload_max_filesize = 2M 和 post_max_size = 8M,两者都超过 100,尽管它应该在 2 兆字节和 8 兆字节下工作。还是没有成功。

我对 php 有点陌生,但我确实启用了所有日志,并尝试检查错误日志,但唯一具有相关信息的是 php 错误日志,我看到的唯一错误是“文件路径/tp 中的未定义索引” /myfile.php 第 13 行'。我应该检查任何其他错误日志吗?

我查看了很多论坛和主题,但我找不到我的不工作的原因。

[编辑] 我确实有正确的加密类型。 (我确实上传了一张图片)。 enctype="multipart/form-data

[EDIT2] 我的 php 脚本: 以防万一你好奇,这是“Head First php mysql”中的一个练习

<?php
if(isset($_POST['submit'])){
    $first_name = $_POST['first_name'];
    $last_name = $_POST['last_name'];
    $score = $_POST['score'];
    $screenshot = $_FILES['screenshot']['name'];
    $target_directory = "images/$screenshot";
    $tmp_directory = $_FILES['screenshot']['tmp_name'];

    echo "echoing" . $tmp_directory;

    move_uploaded_file($tmp_directory, $target_directory) or die("Failed to move");

$db = "guitarwars";
$table = "highscoretable";

$dbc = mysqli_connect(privateinfor) or die("Failed to connect to server");
mysqli_select_db($dbc, $db) or die("Failed to select database");

$query = "INSERT INTO $table VALUES(0, NOW(), '$first_name', '$last_name', '$score', '$screenshot')";

//mysqli_query($dbc, $query) or die("Failed to query database");

}else{

?>

<html>
    <head>
        <style type="text/css">
            .container {
                width: 100%;
            }
            .container label{
            }
        </style>

    </head>
    <body>
    <h1>Guitar Wars - Add Your High Score</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
        <div class="container">
        <input type="hidden" name="MAX_FILE_SIZE" value="32768" enctype="multipart/form-data"/>
        <label for="first_name">First Name:</label> 
        <input type="text" size="32" maxlength="32" value="<?php echo $first_name; ?>" placeholder="First Name" id="first_name" name="first_name"/>
        <label for="last_name">Last Name:</label> 
        <input type="text" size="32" maxlength="32" value="<?php echo $last_name; ?>" placeholder="Last Name" id="last_name" name="last_name"/></br>
        <label for="score">Score:</label> 
        <input type="text" size="11" maxlength="11" placeholder="Enter score" value="<?php echo $score; ?>" id="score" name="score"/></br>
        <label for="screenshot">Screenshot:</label> 
        <input type="file" id="screenshot" name="screenshot"/></br>
        <input type="submit" name="submit" value="submit" />
        </div>
    </form>
    </body>
</html>
<?php
    }
?>

【问题讨论】:

    标签: php web-applications file-upload php-ini


    【解决方案1】:

    你还需要改变memory_limit

    memory_limit = value
    upload_max_filesize = value
    post_max_size = value
    

    【讨论】:

    • memory_limit = 128M。 “M”代表兆字节,我很确定。
    • 请检查 phpinfo() 并查看它们是否正在更新。你也重启了你的服务器吗?
    • 我没有重新启动我的服务器。但我只是没有运气重新启动我的服务器。 phpinfo() 上显示的值:post_max_size=100M,upload_max_filesize = 100m。 memory_limit = 128M。
    • 还是不能上传?您是否收到超时错误?
    • 是的,我在上面粘贴了我的 php 代码。我得到“回声无法移动”。这意味着临时目录没有回显,我收到 die() 消息。但是对于我的 27kb 小文件,我得到了 tmp 目录。例如。 echoingC/目录。我不知道什么是超时错误,但我希望这能回答您的问题。 die() 函数执行(如果这是超时)。
    猜你喜欢
    • 1970-01-01
    • 2012-04-26
    • 2013-08-08
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    相关资源
    最近更新 更多