Experimenting an application, which allows access FTP from Internet Browser (http://browserftp.herokuapp.com) on an user friendly web page.
User can connect to their FTP host which publicly accessible, and then browse through the folders and files, can view/edit single file, support upload multiple files.
This application is Ajax-based and is able to refreshing, loading the part of the UI (User Interface), like directory tree, without reload whole web page. The UI is designed using Bootstrap Template and heavily using jQuery to manipulate the web page. It used FormData to implement HTML5 file upload feature. It used Server Side Event during file upload whenever to report the file upload progress.
The server side is implemented using Node.JS + ExpressJS. ExpressJS is greatly helpful when creating RESTful and clean interface, and when integrating with the UI. Node.JS FTP Library is used to implement the FTP connection from Node.JS server to user’s FTP server. String-stream is used to convert the uploaded file stream into FTP upload stream. Crypto library is used to perform encryption on the process.