[英]File Type and Size Validation while Uploading it using JavaScript
我在 HTML 表單上使用 JavaScript 在加載之前檢查圖像的大小和類型。
我正在使用以下代碼:JS test.html
<!DOCTYPE html>
<html>
<head>
<title>
File Type Validation while
Uploading it using JavaScript
</title>
<style>
h1 {
color: green;
}
body {
text-align: center;
}
</style>
</head>
<body>
<h1> MyForm</h1>
<h3>
Validation of file type and size whileuploading using JavaScript?
</h3>
<!-- File input field 1 -->
<p>Upload an Image 1</p>
<input type="file" id="image1"
onchange="return TypeValidation1(); SizeValidation1();" />
<!-- File input field 2-->
<p>Upload an Image 2</p>
<input type="file" id="image2"
onchange="return TypeValidation2(); SizeValidation2();" />
<!-- Script TypeValidation file 1 -->
<script>
function TypeValidation1() {
var fileInput =
document.getElementById('image1');
var filePath = fileInput.value;
// Allowing file type
var allowedExtensions =
/(\.jpg|\.jpeg|\.png|\.gif)$/i;
if (!allowedExtensions.exec(filePath)) {
alert('Invalid file type');
fileInput.value = '';
return false;
}
}
</script>
<!-- Script TypeValidation file 2 -->
<script>
function TypeValidation2() {
var fileInput =
document.getElementById('image2');
var filePath = fileInput.value;
// Allowing file type
var allowedExtensions =
/(\.jpg|\.jpeg|\.png|\.gif)$/i;
if (!allowedExtensions.exec(filePath)) {
alert('Invalid file type');
fileInput.value = '';
return false;
}
}
</script>
<!-- Script SizeValidation file 1 -->
<script>
function SizeValidation1() {
const fi = document.getElementById('image1');
// Check if any file is selected.
if (fi.files.length > 0) {
for (const i = 0; i <= fi.files.length - 1; i++) {
const fsize = fi.files.item(i).size;
const file = Math.round((fsize / 1024));
// The size of the file.
if (file >= 4096) {
alert(
"File too Big, please select a file less than 4mb");
}
}
}
}
</script>
<!-- Script SizeValidation file 2 -->
<script>
function SizeValidation2() {
const fi = document.getElementById('image2');
// Check if any file is selected.
if (fi.files.length > 0) {
for (const i = 0; i <= fi.files.length - 1; i++) {
const fsize = fi.files.item(i).size;
const file = Math.round((fsize / 1024));
// The size of the file.
if (file >= 4096) {
alert(
"File too Big, please select a file less than 4mb");
}
}
}
}
</script>
</body>
</html>
該代碼檢查圖像的類型,但無法檢查大小。 即使對於單個“OnChange”事件的兩個腳本的實現,我也不知道它是否寫得很好。 幫助請知道我是 javaScript 的初學者。
這有兩個綜合原因:
你用:
<input type="file" id="image1" onchange="return TypeValidation1(); SizeValidation1();" />
改為使用:
<input type="file" id="image1" onchange="TypeValidation1(); SizeValidation1();" />
你用:
for (const i = 0; i <= fi.files.length - 1; i++) {
而是使用:
for (var i = 0; i <= fi.files.length - 1; i++) {
我希望這對你有幫助。 祝你有美好的一天:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.