2010-05-27 44 views
18

Có thể liệt kê các tệp trong một thư mục chỉ bằng javascript không? Để làm rõ, tôi có nghĩa là danh sách các tập tin trên máy chủ, không phải các tập tin trên máy khách. Ví dụ:Liệt kê các tệp trong một thư mục chỉ sử dụng javascript

www.domain.com/files/

chứa 4 hình ảnh (.jpg)

Tôi có thể làm cho một trang thêm (www.domain.com/files/list.html) mà liệt kê 4 tệp đó bằng javascript?

+0

Có thể, nhưng bạn không thể truy cập hệ thống tệp của người dùng theo cách khác, không phải không có người dùng đồng ý rõ ràng (thông qua hộp thoại rất khó hiểu) ngay cả trong trình duyệt hỗ trợ.Tốt nhất nên làm rõ rằng đây là những gì bạn đang làm sau để đảm bảo câu trả lời bạn nhận được sẽ hữu ích – Gareth

+0

Để làm rõ, tôi muốn liệt kê các tệp trên máy chủ chứ không phải tệp trên máy khách. Ví dụ: www.domain.com/files/ chứa 4 hình ảnh (.jpg) Tôi có thể tạo thêm trang (www.domain.com/files/list.html) liệt kê 4 tệp đó bằng javascript không ? –

+0

Đó là năm 2018, tôi khá chắc chắn JS có thể liệt kê các tập tin tại một địa chỉ nhất định. Có ai có câu trả lời hay cho câu hỏi này không? – Fla

Trả lời

12

Không, Javascript không có quyền truy cập vào hệ thống tệp. Server side Javascript là một câu chuyện hoàn toàn khác nhưng tôi đoán bạn không có ý đó.

+2

Để làm rõ, tôi có nghĩa là danh sách các tập tin trên máy chủ, không phải là các tập tin trên máy tính khách hàng. Ví dụ: www.domain.com/files/ chứa 4 hình ảnh (.jpg) Tôi có thể tạo thêm trang (www.domain.com/files/list.html) liệt kê 4 tệp đó bằng javascript không ? –

0

Nó thường không phải là một ý tưởng tốt để truy cập vào các file máy tính của khách hàng thông qua javascript cho an ninh lý do, tuy nhiên tôi nghi ngờ bạn có thể sử dụng File System Object cho điều đó. Tôi không chắc chắn về khả năng tương thích với trình duyệt cho rằng, nó nên làm việc trong IE chỉ có lẽ mặc dù.

Bạn cần phải sử dụng ngôn ngữ server-side như PHP, ASP.Net, JSP, vv

0

JavaScript chạy bên trong một môi trường máy chủ. Vì vậy, nếu máy chủ lưu trữ cung cấp một cơ sở để liệt kê các tệp theo cách này, thì có. Nhưng trong trường hợp điển hình trong đó JavaScript đang chạy trong trình duyệt có cấu hình mặc định, không.

1

Tôi không biết nếu kiến ​​trúc của bạn cho phép nhưng ikf bạn có thể cài đặt và sử dụng node.js làm các tham chiếu node API của mình, bạn có thể tương tác với hệ thống tệp bằng cách yêu cầu mô đun fs.

Đây là môi trường Node.js dựa vào:

Node cuối cùng mong muốn hỗ trợ tất cả các hệ điều hành POSIX (bao gồm Windows với MinGW) nhưng tại thời điểm nó chỉ được thử nghiệm trên Linux, Macintosh và Solaris. Hệ thống xây dựng yêu cầu Python 2.4 trở lên. V8, trên đó Nút được xây dựng, chỉ hỗ trợ chỉ các bộ vi xử lý IA-32 và ARM. V8 là được bao gồm trong bản phân phối Nút. Để sử dụng TLS, OpenSSL là bắt buộc. Có không có phụ thuộc nào khác.

Bạn có thể chạy song song với ứng dụng web khác. và điều này sẽ tránh việc chặn ứng dụng web của bạn nếu tương tác với hệ thống tệp mất quá nhiều thời gian.

9

Rất muộn cho bên này, nhưng tìm kiếm google của tôi cho yêu cầu chính xác này đã dẫn tôi đến đây.

Câu trả lời là "không thực sự", nhưng tôi đã tìm thấy frankenstein của hack ở nơi khác: Nếu + Indexes (hoặc có thể) được bật trong .htaccess cho thư mục chứa các tệp bạn muốn liệt kê, thì hãy sử dụng XMLHTTPRequest với tên thư mục là url (sẽ trả về một trang html liệt kê các tệp).

+0

câu hỏi là làm thế nào để làm danh sách tập tin ** trong JavaScript **, không phải trong Apache ... – Sk8erPeter

+1

Tôi đã reworded câu trả lời của tôi cho phù hợp. –

Các vấn đề liên quan