Bunkai.Satori
Bunkai.Satori

Reputation: 4758

Javascript: Listing File and Folder Structure

As I have read, it is not easy for JavaScript to modify files on client PC. I am working on a web based file manager and would need to know the following:

If your answer is no, that Java Scipt can not list files and folders say on client's or server's C:\ drive, than would CGI script be the only solution?

Upvotes: 4

Views: 14672

Answers (3)

Mainmeister
Mainmeister

Reputation: 21

It's a cludge but you could resort to a java applet or the dreaded active-x control.

Upvotes: 0

Joseph
Joseph

Reputation: 119827

Browser JS reading client PC's files: Depends

For a security reason, you can't access the files on the user's PC without the user's consent.

That's why the FileReader API is created around the file input box <input type="file"> and a drag-n-drop area since the whole idea is to "access the file with user's consent". Without the user intentionally putting the file for access, you can't access it at all.

Server-side JS reading own server's files: Yes

As for server, if you meant access the server using server-JS (NodeJS or Rhino), yes you can (How else would it serve webpages anyway?).

Browser JS reading own server's files: Depends

Accessing the server from the browser using JS works if you have an API to read files from it.

Browser JS reading other server's files: Yes, with a catch

To access other server's files without some API, you could resort to creating a web scraper or a web-spider that runs server-side (since browser can't cross domains due to the same origin policy) and have an API exposed to your browser.

However:

  • you can't crawl to all files as some may be restricted from outside access.
  • the public appearance of the structure could be different from the internal structure, especially if the site uses segmented url scheme
  • sites using query strings to generate pages cannot be crawled easily due to the number of permutations it could make, thus some pages might be unreacheable.

Upvotes: 8

lanzz
lanzz

Reputation: 43158

CGI won't be a solution either, as it only has access to the filesystem of your server, not that of the client visiting your site. The only way to access your client's filesystem from javascript seems to be the File API, which apparently is not implemented by many browsers.

Upvotes: 2

Related Questions