我有一个非常标准的上传表格。一些文本输入,一个文件上传输入,一个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)