Kiểm tra javascript nếu tệp đầu vào được chọn
Sử dụng API tệp, nội dung web có thể yêu cầu người dùng chọn các tệp cục bộ và sau đó đọc nội dung của các tệp đó. Lựa chọn này có thể được thực hiện bằng cách sử dụng phần tử HTML 4 hoặc bằng cách kéo và thả Show
Truy cập (các) tệp đã chọnHãy xem xét HTML này
API tệp cho phép truy cập một đối tượng 5 chứa 6 đại diện cho các tệp do người dùng chọnThuộc tính 7 trên phần tử 8 cho phép người dùng chọn nhiều tệpTruy cập tệp được chọn đầu tiên bằng bộ chọn DOM cổ điển
Truy cập (các) tệp đã chọn trong một sự kiện thay đổiCũng có thể (nhưng không bắt buộc) truy cập vào 5 thông qua sự kiện 0. Bạn cần sử dụng 1 để thêm trình lắng nghe sự kiện 0, như thế này
Nhận thông tin về (các) tệp đã chọnĐối tượng 5 do DOM cung cấp liệt kê tất cả các tệp được người dùng chọn, mỗi tệp được chỉ định là đối tượng 6. Bạn có thể xác định có bao nhiêu tệp mà người dùng đã chọn bằng cách kiểm tra giá trị của thuộc tính 5 của danh sách tệp________số 8 Các đối tượng 6 riêng lẻ có thể được truy xuất bằng cách truy cập danh sách dưới dạng một mảng 7Vòng lặp này lặp qua tất cả các tệp trong danh sách tệp Có ba thuộc tính được cung cấp bởi đối tượng 6 chứa thông tin hữu ích về tệp 8Tên tệp dưới dạng chuỗi chỉ đọc. Đây chỉ là tên tệp và không bao gồm bất kỳ thông tin đường dẫn nào 9Kích thước của tệp tính bằng byte dưới dạng số nguyên 64 bit chỉ đọc 70Loại MIME của tệp dưới dạng chuỗi chỉ đọc hoặc 71 nếu không xác định được loạiVí dụ. Hiển thị (các) kích thước tệpVí dụ sau đây cho thấy khả năng sử dụng thuộc tính 9 4Sử dụng các phần tử đầu vào tệp ẩn bằng phương thức click()Bạn có thể ẩn phần tử tệp 73 xấu xí được thừa nhận và hiển thị giao diện của riêng bạn để mở bộ chọn tệp và hiển thị tệp hoặc tệp mà người dùng đã chọn. Bạn có thể làm điều này bằng cách tạo kiểu cho phần tử đầu vào bằng 74 và gọi phương thức 75 trên phần tử 73Hãy xem xét HTML này 9Mã xử lý sự kiện 77 có thể trông như thế này 1Bạn có thể tạo kiểu cho 78 theo cách bạn muốnSử dụng phần tử nhãn để kích hoạt phần tử đầu vào tệp ẩnĐể cho phép mở bộ chọn tệp mà không cần sử dụng JavaScript (phương thức click()), có thể sử dụng phần tử 79. Lưu ý rằng trong trường hợp này, không được ẩn phần tử đầu vào bằng cách sử dụng 40 (hoặc 41), nếu không, nhãn sẽ không thể truy cập được bằng bàn phím. Thay vào đó, hãy sử dụng kỹ thuật ẩn trực quanHãy xem xét HTML này 6và CSS này 7Không cần thêm mã JavaScript để gọi 42. Ngoài ra, trong trường hợp này, bạn có thể tạo kiểu cho thành phần nhãn theo ý muốn. Bạn cần cung cấp một gợi ý trực quan về trạng thái tiêu điểm của trường nhập ẩn trên nhãn của nó, có thể là đường viền như minh họa ở trên hoặc màu nền hoặc bóng hộp. (Tại thời điểm viết bài này, Firefox không hiển thị gợi ý trực quan này cho các phần tử 43. )Chọn tệp bằng cách kéo và thảBạn cũng có thể cho phép người dùng kéo và thả tệp vào ứng dụng web của mình Bước đầu tiên là thiết lập một khu vực thả. Chính xác phần nào trong nội dung của bạn sẽ chấp nhận sự sụt giảm có thể khác nhau tùy thuộc vào thiết kế của ứng dụng của bạn, nhưng việc tạo một phần tử nhận sự kiện giảm là dễ dàng 0Trong ví dụ này, chúng tôi đang chuyển phần tử có ID 44 vào vùng thả của chúng tôi. Điều này được thực hiện bằng cách thêm người nghe cho các sự kiện 45, 46 và 47Chúng tôi thực sự không cần phải làm bất cứ điều gì với các sự kiện 45 và 46 trong trường hợp của chúng tôi, vì vậy cả hai chức năng này đều đơn giản. Họ chỉ dừng truyền bá sự kiện và ngăn hành động mặc định xảy ra 1Điều kỳ diệu thực sự xảy ra trong hàm 90 2Ở đây, chúng tôi truy xuất trường 91 từ sự kiện, kéo danh sách tệp ra khỏi đó rồi chuyển trường đó tới 92. Kể từ thời điểm này, việc xử lý các tệp là như nhau cho dù người dùng sử dụng phần tử 8 hay kéo và thảVí dụ. Hiển thị hình thu nhỏ của hình ảnh do người dùng chọnGiả sử bạn đang phát triển trang web chia sẻ ảnh tuyệt vời tiếp theo và muốn sử dụng HTML để hiển thị bản xem trước hình thu nhỏ của hình ảnh trước khi người dùng thực sự tải chúng lên. Bạn có thể thiết lập phần tử đầu vào hoặc vùng thả của mình như đã thảo luận trước đó và yêu cầu họ gọi một hàm, chẳng hạn như hàm 92 bên dưới 3Ở đây, vòng lặp của chúng tôi xử lý các tệp do người dùng chọn sẽ xem xét thuộc tính 70 của từng tệp để xem liệu loại MIME của nó có bắt đầu bằng chuỗi " 96"). Đối với mỗi tệp là một hình ảnh, chúng tôi tạo một phần tử 97 mới. CSS có thể được sử dụng để thiết lập bất kỳ đường viền hoặc bóng đẹp nào và để chỉ định kích thước của hình ảnh, do đó không cần phải thực hiện ở đâyMỗi hình ảnh có lớp CSS 98 được thêm vào, giúp dễ dàng tìm thấy trong cây DOM. Chúng tôi cũng thêm thuộc tính 99 cho mỗi hình ảnh chỉ định 6 cho hình ảnh; . Chúng tôi sử dụng 11 để thêm hình thu nhỏ mới vào khu vực xem trước của tài liệu của chúng tôiTiếp theo, chúng tôi thiết lập 12 để xử lý tải hình ảnh không đồng bộ và gắn nó vào phần tử 97. Sau khi tạo đối tượng 12 mới, chúng tôi thiết lập chức năng 15 của nó và sau đó gọi 16 để bắt đầu thao tác đọc trong nền. Khi toàn bộ nội dung của tệp hình ảnh được tải, chúng sẽ được chuyển đổi thành một URL 17 được chuyển đến hàm gọi lại 15. Việc triển khai quy trình này của chúng tôi đặt thuộc tính 60 của phần tử 97 thành hình ảnh được tải, dẫn đến hình ảnh xuất hiện trong hình thu nhỏ trên màn hình của người dùngSử dụng URL đối tượngCác phương thức DOM 61 và 62 cho phép bạn tạo các chuỗi URL đơn giản có thể được sử dụng để tham chiếu bất kỳ dữ liệu nào có thể được tham chiếu bằng đối tượng DOM 6, bao gồm các tệp cục bộ trên máy tính của người dùngKhi bạn có một đối tượng 6 mà bạn muốn tham chiếu bằng URL từ HTML, bạn có thể tạo một URL đối tượng cho nó như thế này 4URL đối tượng là một chuỗi xác định đối tượng 6. Mỗi khi bạn gọi 61, một URL đối tượng duy nhất sẽ được tạo ngay cả khi bạn đã tạo một URL đối tượng cho tệp đó rồi. Mỗi trong số này phải được phát hành. Mặc dù chúng được giải phóng tự động khi tài liệu được tải xuống, nhưng nếu trang của bạn sử dụng chúng một cách linh hoạt, bạn nên giải phóng chúng một cách rõ ràng bằng cách gọi 62 5Ví dụ. Sử dụng URL đối tượng để hiển thị hình ảnhVí dụ này sử dụng URL đối tượng để hiển thị hình thu nhỏ của hình ảnh. Ngoài ra, nó còn hiển thị thông tin tệp khác bao gồm tên và kích thước của chúng HTML trình bày giao diện trông như thế này 6Điều này thiết lập phần tử 73 tệp của chúng tôi cũng như một liên kết gọi bộ chọn tệp (vì chúng tôi ẩn đầu vào tệp để ngăn giao diện người dùng kém hấp dẫn đó hiển thị). Điều này được giải thích trong phần Sử dụng các phần tử đầu vào tệp ẩn bằng phương thức click(), cũng như phương thức gọi bộ chọn tệpPhương pháp 92 sau 7Điều này bắt đầu bằng cách tìm nạp URL của 70 với ID 71. Đây là khối mà chúng tôi sẽ chèn danh sách tệp của mình, bao gồm cả hình thu nhỏNếu đối tượng 5 được chuyển đến 92 là 74, chúng tôi đặt HTML bên trong của khối để hiển thị "Không có tệp nào được chọn. ". Mặt khác, chúng tôi bắt đầu xây dựng danh sách tệp của mình, như sau
Đây là bản demo trực tiếp của đoạn mã trên Ví dụ. Tải lên tệp do người dùng chọnMột điều khác bạn có thể muốn làm là cho phép người dùng tải tệp hoặc tệp đã chọn (chẳng hạn như hình ảnh được chọn bằng ví dụ trước) lên máy chủ. Điều này có thể được thực hiện không đồng bộ rất dễ dàng Tạo các tác vụ tải lênTiếp tục với đoạn mã đã tạo hình thu nhỏ trong ví dụ trước, hãy nhớ lại rằng mọi hình ảnh thu nhỏ đều thuộc lớp CSS 98 với 6 tương ứng được đính kèm trong thuộc tính 99. Điều này cho phép chúng tôi chọn tất cả các hình ảnh mà người dùng đã chọn để tải lên bằng cách sử dụng 09, như thế này 8Dòng 2 tìm nạp một 10, được gọi là 11, của tất cả các thành phần trong tài liệu với lớp CSS 98. Trong trường hợp của chúng tôi, đây sẽ là tất cả các hình thu nhỏ của hình ảnh. Khi chúng tôi có danh sách đó, việc lướt qua nó và tạo một phiên bản 13 mới cho mỗi. Mỗi trong số này xử lý tải lên tệp tương ứngXử lý quá trình tải lên cho một tập tinHàm 13 chấp nhận hai đầu vào. một phần tử hình ảnh và một tệp để đọc dữ liệu hình ảnh 9Hàm 15 được hiển thị ở trên tạo một throbber, được sử dụng để hiển thị thông tin về tiến độ, sau đó tạo một 16 để xử lý việc tải dữ liệu lênTrước khi thực sự chuyển dữ liệu, một số bước chuẩn bị được thực hiện
Xử lý không đồng bộ quá trình tải tệp lênVí dụ này, sử dụng PHP ở phía máy chủ và JavaScript ở phía máy khách, minh họa việc tải tệp lên không đồng bộ 0Ví dụ. Sử dụng URL đối tượng để hiển thị PDFURL đối tượng có thể được sử dụng cho những thứ khác ngoài hình ảnh. Chúng có thể được sử dụng để hiển thị các tệp PDF được nhúng hoặc bất kỳ tài nguyên nào khác mà trình duyệt có thể hiển thị Làm cách nào để kiểm tra xem một tệp có được chọn trong JavaScript không?thuộc tính độ dài để kiểm tra tệp có được chọn hay không. nếu phần tử. các tập tin. thuộc tính độ dài trả về 0 thì tệp không được chọn nếu không thì tệp được chọn.
Làm cách nào để kiểm tra xem tệp đầu vào có trống JavaScript không?Thương hiệu mới đối với JS. . Kiểm tra. các tập tin. . bạn cũng có thể lọc các tệp không trống nếu bạn có nhiều tệp trên biểu mẫu. tệp var = $('#formbody'). tìm ('đầu vào [loại = tệp]'). bộ lọc (hàm () { trả lại $ (cái này) [0]. các tập tin. chiều dài > 0; . . @PiotrKowalski Đoạn trích tuyệt vời nhưng tôi khuyên bạn nên sử dụng let over var Làm cách nào để phát hiện JavaScript tải lên tệp?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.
Làm cách nào để xóa JavaScript tệp đầu vào?giá trị = ”. Cách đơn giản nhất để đặt lại đầu vào là không thay đổi giá trị đã điền . |