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ệprouter.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ọnKhi 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àyChú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"}];
}];
5Kiể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ôngCá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ốngrouter.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 FormidableVớ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!"]
}
}
3Kiể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"}];
}];
30router.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"}];
}];
3Hai 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