Cách kiểm tra xem tệp đầu vào có trống không trong JavaScript

Chỉ cần kiểm tra độ dài của thuộc tính tệp, là đối tượng FileList có trên phần tử đầu vào

if[ document.getElementById["videoUploadFile"].files.length == 0 ]{
    console.log["no files selected"];
}

~ Đã trả lời vào 2014-09-11 17. 45. 45

Các ứng dụng web thường nhận đầu vào của người dùng ở một số dạng - và với bất kỳ đầu vào nào, việc xác thực là rất quan trọng. Đảm bảo rằng các trường biểu mẫu chứa dữ liệu hợp lệ hoặc chúng chứa bất kỳ dữ liệu nào là một trong những bước kiểm tra đầu tiên bạn có thể thực hiện

Khi người dùng tải tệp lên - bạn sẽ muốn kiểm tra xem các tệp này có trống không, không chỉ là chúng có tồn tại hay không. Ngoài ra, vì Node hỗ trợ phát triển phía máy chủ và có thể hoạt động với hệ thống tệp, nên bạn sẽ thấy mình luôn làm việc với các tệp và thư mục, đặc biệt nếu bạn đang tạo ứng dụng CLI

Trong hướng dẫn này, chúng ta sẽ xem cách kiểm tra xem một tệp hoặc thư mục có trống hay không bằng cách sử dụng Node. js

Ghi chú. Tác vụ này có thể được quan sát qua hai lăng kính - nhận tệp từ giao diện người dùng và xác thực tệp đó hoặc làm việc với hệ thống tệp bất kể giao diện người dùng có khả năng không tồn tại. Chúng tôi sẽ xem xét cả hai

Kiểm tra xem tệp có được chọn bằng JavaScript không

Vanilla JavaScript không có nhiệm vụ kiểm tra xem một tệp có trống hay không, vì nó có thể kiểm tra xem một biểu mẫu có tệp được đính kèm hay không, nhưng không thể tự xử lý tệp đó

Chúng tôi sẽ bắt đầu từ đó - kiểm tra xem tệp có được chọn từ hệ thống tệp và được đính kèm vào biểu mẫu không. Hãy tạo một biểu mẫu đơn giản trên giao diện người dùng

Trang chứa một

chấp nhận tệp
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
7, thông qua tệp
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
8. Sau khi nhấn nút, chức năng
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
9 được kích hoạt, từ
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
0 đã nhập.
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}

Chúng tôi nhận phần tử

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
1 của mình với
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
2 và kiểm tra độ dài của thuộc tính
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
0, mà một
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
1 thuộc loại
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
2 có. Nếu nó trống, chúng tôi thông báo cho người dùng rằng không có tệp nào được chọn

Khi chúng tôi chắc chắn rằng người dùng đã cung cấp tệp, chúng tôi có thể kiểm tra xem họ đã cung cấp tệp không trống chưa

Mô-đun fs

Nút. js là một môi trường thời gian chạy JavaScript thực thi mã JavaScript bên ngoài trình duyệt. Điều này mang lại cho chúng tôi khả năng giao tiếp với hệ điều hành và hệ thống tệp cơ bản. Mô-đun

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
3 [Hệ thống tệp] tích hợp hoạt động kỳ diệu đối với chúng tôi trong trường hợp này

Chúng tôi sẽ dựa vào các phương pháp

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
4 và
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
5

Kiểm tra xem một tệp có trống không với nút. js

Sau khi người dùng gửi một tệp thông qua biểu mẫu tới back-end của bạn, chẳng hạn như tới điểm cuối

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
6, đã đến lúc kiểm tra xem tệp có trống không

Cách dễ nhất để kiểm tra là truyền dữ liệu trong tệp và kiểm tra độ dài của tệp. Nếu có 0 byte trong tệp, hay đúng hơn, nếu

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
7 của dữ liệu bằng với
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
8, thì tệp trống

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];

Tuy nhiên, chúng tôi đã sử dụng mô-đun

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
9 để lấy tệp từ biểu mẫu, bước này cũng có thể được thực hiện với nhiều thư viện khác, chẳng hạn như Multer hoặc Formidable

Với

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
9, chúng tôi có thể tạo một thể hiện của một biểu mẫu và phân tích cú pháp nó, chuyển
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
31 cho nó, đây là
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
32 của chúng tôi được gửi từ giao diện người dùng. Phương thức
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
33 trả về tất cả các tệp được gửi qua biểu mẫu, nhưng vì biểu mẫu của chúng tôi chỉ chấp nhận một tệp và chúng tôi chỉ mong đợi một tệp - chúng tôi đang truy cập nó qua
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
34. Sử dụng phương pháp
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
4, chúng tôi đang đọc tệp và giải nén tệp
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
36 của nó. Nếu
function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
36 này có một
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
7 của
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
8 - tệp trống và chúng tôi trả về mã trạng thái 422 Thực thể không thể xử lý

Nếu bạn không xử lý một tệp do biểu mẫu cung cấp và đã có tên trong đầu, bạn hoàn toàn có thể bỏ qua quy trình này và đọc tệp trực tiếp

Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó

function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
3

Kiểm tra xem một Thư mục có trống không với Nút. js

Khi kiểm tra một thư mục có trống hay không, chúng ta có thể sử dụng phương thức

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
30

router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
3

Hai phương thức này hoàn toàn tương đương về cú pháp [ngoại trừ tên của phương thức], vì vậy mọi thứ áp dụng cho phương thức này sẽ áp dụng cho phương thức kia. Nếu

function checkFile[] {
    let fileInputField = document.getElementById["file"];
    if [fileInputField.files.length == 0] {
        alert["Please select a file!"]
    }
}
36 của thư mục bằng với
router.post['/upload', function[req, res] {
	const fs = require['fs'];
	const multiparty = require['multiparty'];
	let form = new multiparty.Form[];
	form.parse[req, function[err, fields, files] {
		let file = files.keySelect[0];
		fs.readFile[file, function[err, data] {
			if [data.length == 0] {
				return res.status[422].json[{message : "File is empty! Unprocessable Entity."}];
			}
		}]
	}];
	return res.status[200].json[{message: "Success"}];
}];
8, nó trống

Điều này thường được kết hợp với việc liệt kê các tệp trong một thư mục

Phần kết luận

Làm việc với các tệp là phổ biến đối với các dự án Node, vì nó được sử dụng ở phía máy chủ. Một trong những kiểm tra cơ bản bạn có thể thực hiện để xác thực tệp là kiểm tra xem chúng có trống hay không

Làm cách nào để kiểm tra tệp trống hay không trong JavaScript?

Sử dụng đối tượng. . Nếu độ dài của mảng là 0 thì chúng ta biết rằng đối tượng trống. Chúng ta cũng có thể kiểm tra điều này bằng Object. giá trị và đối tượng.

Làm cách nào để kiểm tra xem tệp loại đầu vào có trống không bằng jQuery?

Trả lời. Sử dụng Phương thức val[] của jQuery .

Làm cách nào để kiểm tra xem tệp văn bản có trống trong nút js không?

Kiểm tra xem Tệp có trống không với Nút. Cách dễ nhất để kiểm tra là truyền dữ liệu trong tệp và kiểm tra độ dài của tệp . Nếu có 0 byte trong tệp, hay đúng hơn, nếu độ dài của dữ liệu bằng 0 , thì tệp trống. bộ định tuyến.

Làm cách nào để kiểm tra loại tệp trong JavaScript?

Sử dụng JavaScript, bạn có thể dễ dàng kiểm tra phần mở rộng tệp đã chọn với các phần mở rộng tệp được phép và có thể hạn chế người dùng chỉ tải lên các loại tệp được phép. Đối với điều này, chúng tôi sẽ sử dụng hàm fileValidation[] . Chúng tôi sẽ tạo hàm fileValidation[] chứa mã xác thực loại tệp hoàn chỉnh.

Chủ Đề