小编use*_*834的帖子

文件上传表单不适用于大文件

我有一个非常标准的上传表格。一些文本输入,一个文件上传输入,一个reCAPTCHA和一个提交按钮。

在正常使用下,我可以上传一个小文件。表单数据将被重定向到action属性中的页面,并且在处理上传的PHP和SQL中做了很多事情。

但是,当尝试上传40 MB的文件时,它根本不起作用。起初,我以为是验证码,因为它给我输入错误的错误提示。禁用验证码后,我发现定义我所有$ _POST ['input']的变量没有被传递。我会得到PHP错误,例如:

Notice: Undefined index: name in /var/www/upload.php on line 18
Run Code Online (Sandbox Code Playgroud)

第18行在哪里 $name=$_POST['name'];

对于我表单中的每个输入,我都会获得其中之一。

这告诉我未设置POST,因为发送大文件时表单不起作用,所以我的问题很简单……为什么?当然,有什么解决方案?

编辑:相关代码:

提交表格:

<form action="/upload.php" method="post" enctype="multipart/form-data">
    <ul>
        <li>
            <input class="text" type="text" name="name">
        </li>
        <li>
            <input class="text" type="email" name="email" placeholder="<?php echo $content['SubmitFormEmailPlaceholder'];?>">
        </li>
        <li>
            <input type="file" name="file">
            <input class="text" type="text" name="url" placeholder="http://">
        </li>
        <li>
            <textarea class="text" name="notes" rows="5"></textarea>
        </li>
        <li>
            <?php
                require_once($_SERVER['DOCUMENT_ROOT'].'/resources/recaptchalib.php');
                $publickey = "key";
                echo recaptcha_get_html($publickey);
            ?>
        </li>
        <li>
            <input type="submit">
        </li>
    </ul>
</form>
Run Code Online (Sandbox Code Playgroud)

上传代码:

<?php
    date_default_timezone_set('UTC');
    //echo $_FILES['file']['error'];
    require_once($_SERVER['DOCUMENT_ROOT'].'/resources/recaptchalib.php');
    $privatekey="key"; …
Run Code Online (Sandbox Code Playgroud)

php forms file-upload

2
推荐指数
1
解决办法
1773
查看次数

标签 统计

file-upload ×1

forms ×1

php ×1