如何解决在插入有效的文件扩展名之前不允许提交表单
目前,当包含错误的文件扩展名或大小时,我可以显示警报。但是一旦我关闭警报框,我仍然可以单击提交按钮,它进入 code.php 然后显示错误消息。我在我的 code.php 中有一个 if 语句(我没有在此处包含该文件)来检查我的代码中的文件 ext 和大小,并在 adddoc.php 上返回并显示错误。
但我想要的是,当插入了错误的文件 ext 时,我希望提交按钮在插入正确的 ext 之前不起作用。可能吗?
adddoc.php:
<script>
//CHECK FILE SIZE
function OnFileValidation() {
var image = document.getElementById("doc");
if (typeof (image.files) != "undefined") {
var size = parseFloat(image.files[0].size / (1024 * 1024)).toFixed(2);
if(size > 1) {
alert('Please select image size less than 2 MB');
}
} else {
alert("This browser does not support HTML5.");
}
//CHECK FILE EXT
var fileInput =
document.getElementById('doc');
var filePath = fileInput.value;
// Allowing file type
var allowedExtensions =
/(\.doc|\.docx|\.odt|\.tex|\.txt|\.rtf|\.wps|\.wks|\.wpd|\.png|\.jpg|\.jpeg|\.png)$/i;
if (!allowedExtensions.exec(filePath)) {
alert('Invalid file type');
fileInput.value = '';
return false;
}
}
</script>
<style>div.ex1 {
width: 700px;
margin: auto;
}</style>
<?php
//check error
if(isset($_SESSION['success']) && $_SESSION['success'] !='')
{
echo '<h2 class="alert alert-warning alert-dismissible fade show" role="alert"> '.$_SESSION['success'].'</h2> ';
unset($_SESSION['success']);
}
if(isset($_SESSION['status']) && $_SESSION['status'] !='')
{
echo '<h2 class="bg-danger text-white"> '.$_SESSION['status'].'</h2> ';
unset($_SESSION['status']);
}
?>
<div class="ex1">
<form action="code.php" method="POST" enctype="multipart/form-data">
<hr style="border-top: 3px solid #ccc; background: transparent;">
<h5>Add Documents</h5>
<hr style="border-top: 1px solid #ccc; background: transparent;">
<div class="form-group" >
<label>Title</label>
<input type="text" name="doc_title" class="form-control" required>
</div>
<div class="form-group" >
<label>Documents </label>
<input type="file" name="doc" class="form-control" id="doc" onchange="OnFileValidation()" required>
</div>
<div class="float-right mb-2">
<button type="submit" name="adddoc" class="btn btn-primary">Save</button>
<a href="doc.php" class="btn btn-danger">Cancel</a>
</div>
</form>
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。