在提交表单时,我遇到了一个问题,这是由于php的最大大小限制所致。
我有一个表单,其中包含一些输入文本和一些输入文件,例如:
<?php
if ( isset($_POST['action']) && $_POST['action'] == "upload" ) {
// do some stuff like update a DB
var_dump("Upload complete"); // for debug
// reload this page
header("Location: ./");
exit();
}
?>
<html>
...
<body>
<form id="form" name="form" action="" method="post" enctype="multipart/form-data">
NAME: <input type="text" name="name">
SURNAME: <input type="text" name="surname">
AGE: <input type="text" name="age">
ATTACHMENT 1: <input type="file" name="att_1">
ATTACHMENT 2: <input type="file" name="att_2">
ATTACHMENT 3: <input type="file" name="att_3">
ATTACHMENT 4: <input type="file" name="att_4">
...
<input type="hidden" name="action" value="upload">
<input type="submit" id="btn-sub" value="SUBMIT">
</form>
</body>
</html>
可以通过按钮动态添加附件。
实际上,我已经将php中的POST MAX FILE设置为php.ini进行测试,设置为3MB。
如果我输入文件的总和(或表格大小??)<3MB都可以。
但是,如果文件总数> 3 MB(或窗体大小??),则永远不会设置$_POST['action']
,也永远不会执行PHP代码。
是否有一种方法可以在表单提交时使用jquery / ajax来检查表单的大小是否大于值?如果更大,则提醒用户并阻止提交。
赞:
$("#form").on("submit", function(e) {
if ( SIZE_OF_FORM > POST_MAX_FILE ) { // <--- how can I know value of SIZE_OF_FORM ?
alert("Form too big.");
e.preventDefault();
}
// else continue submit
});