Interested in a tiny Windows program that will let you directly transfer files from your PC to any smart phone, tablet, Mac, Chromebook, or another PC without installing any software on the receiving device? How about the ninja stealth of a portable app that can set up a file server running off a Thumb Drive in only a few seconds? We have you covered.
Meet HFS, a free, open source, easy to use drag-and-drop file server for personal file sharing. HFS is a portable web server application designed for sharing files instead of web pages. It requires no installation, little or no configuration, and can easily move large files from your PC to other computers, mobile devices, and even virtual machines. Any device with a web browser can connect to HFS, which will present a simple HTML page that lists the shared files and allows them to be downloaded. (HFS stands for HTTP File Server and has nothing to do with Apple's similarly abbreviated Hierarchical File System.)
You can use HFS on your Wi-Fi or local network with almost no configuration. This is a great way to transfer that huge eBook or video file from your PC to your iPad without battling with iTunes. If you are willing to set up port forwarding on your router, HFS has advanced features for connecting to the public Internet, allowing anyone in the world to download or upload files directly to your PC. HFS will automatically find your public IP address, allow you to set up user accounts, limit bandwidth used, and even work with dynamic DNS services so you can have a consistent URL to connect to HFS even when your ISP changes your home IP address.
Why not Dropbox or FTP?
There must be a hundred ways to transfer files, so why bother with HFS? As it turns out, HFS is often faster to set up and use than most alternatives. HFS has the advantage of facilitating a high-speed direct connection between your PC and the downloading computer or device. This eliminates the need to upload a file to a remote service and then download it again. FTP software such as FileZilla Server also allows a direct connection, but it is more complex to set up than HFS and quite a bit harder to get working with your firewall and router if you want to use it on the public Internet. Using the web makes sense since web browsers are available on most devices, and HFS makes sense because it's free, easy to use, allows a direct connection, and offers a lot of flexibility in a small, portable, ninja-like package.
Try it out
Let's take HFS for a spin. You'll need a PC running any modern version of Windows. HFS is reported to work on every version from Windows 98 to Windows 10.
Start by downloading hfs.exe here. The entire program is just over 2MB, which is impressive when you consider that many phones these days take single photos that are larger than that.
HFS does not have an installer, so you can keep the hfs.exe executable file anywhere on our system. You can run it right from the Desktop, a USB Thumb Drive you keep on a keychain, or copy it to the C:\Program Files folder like traditionally installed software. HFS does not require Administrator privileges to run, but you'll need Administrator access if we want to copy the program to C:\Program Files.
Massimo Melina, the author of HFS, has not digitally signed the program, so you should expect to see a security warning from Windows that it is from an unknown publisher. Also, if you are using Windows Firewall, the first time you run HFS, Windows may open a dialog box asking if it should allow hfs.exe to communicate on private and public networks. HFS is useless if it cannot connect to the network, so you should give it permission.
Next, HFS will open an Option dialog box asking if you want an "Add to HFS" shortcut on the Windows context menu that is displayed when you right-click on files. Since we're just trying out HFS, go ahead and select No. You can always add this later from the application if you find yourself using HFS a lot. (You do this in Expert mode by selecting: Menu > Other options >→ Integrate in shell context menu).
For such a tiny program, HFS has a surprising number of features. To keep the program simple and focused on how the majority of people use it, HFS starts in "Easy mode," which hides more advanced functionality. Let's explore some of Easy mode's common uses.
Pick a few files that you do not mind sharing and drag and drop them onto the Virtual File System pane in HFS. To keep things simple for now, do not drag and drop a folder, only individual files.
Click anywhere in the Virtual File System pane to make sure that your files are not selected and then click the "Open in browser" button, which will open your default web browser to http://localhost. You should see your shared files in a simple web interface.
At the moment, your PC is acting as both the server (HFS) and the client (web browser), which is not that useful, but it does demonstrate how HFS works. The web interface allows you to click on files to download them individually, or to select multiple files that can be downloaded in a tar-format archive (you can open tar files on Windows using 7-Zip). Notice that with the default settings, you do not need a login to gain access and there is no ability to upload or delete files, only download them.
As long as the firewall software on your PC allows connections to HFS on port 80, any web browser on any device on your local network should be able to view the web interface and download files. Give this a try on another device on your network, such as a laptop, an iPad, or your phone. Use the web browser on this device and go to the URL shown in the HFS URL bar.
Using HFS to move an eBook to an iPad
In the example below we share a few ePub format eBook files in HFS by dragging them into the Virtual File System pane. We open the address that HFS gives us (in this case http://10.0.0.7) on an iPad using the Safari web browser. The web interface looks very similar to how it looked in Chrome on the PC. We tap the shared Dracula eBook, and the iPad begins downloading the file.
The iPad asks us which app we want to use to open the book file. We tap Open in "iBooks," which saves a copy of the book in iBooks.
We have successfully transferred the book from the PC to the iPad and can start reading it in iBooks.
The HFS Log pane records the request made by the iPad and shows the transfer speed of the file.
Using folders and accounts, and enabling uploads
You have access to additional functionality when you use folders. Create a new folder on the Desktop called WebUpload and drag it into the HFS Virtual File System pane. HFS may display a dialog box asking if you want ANYONE to be able to upload to this folder. If it does, be conservative and click No. It is far better to set up an account to allow upload access only to specific users. We will do that below.
When you drag a folder into HFS, it asks if we want a Real folder or a Virtual folder. Selecting a real folder provides the most flexibility, allowing web users to upload files to the folder if we grant them access. Let's try this now. Click Real folder when HFS asks what kind of folder you want.
Right-click the WebUpload folder in HFS, select Properties and then select the Upload tab. From this tab you can both create users and grant them upload permissions. For now, let's create a user named Anna and give her the ability to upload files into the WebUpload folder. To do this, click New account and enter the Username Anna and a password, and click OK.
HFS will show the Anna user with a checkmark in the Upload tab.
Click OK to save your changes.
Click "Open in browser" to view the web interface. Note that there are no upload buttons in the interface because we have not yet logged in. Go ahead and click Login and enter Anna's login information. In the Actions section of the web interface you should now see an Upload button that will place any uploaded files into the WebUpload folder.
You can add granular security by allowing only certain users to access specific folders. You do this in exactly the same way that you added Upload permissions, except this time you check the names of users in the Access tab instead of the Upload tab. Selecting Anna in the Access tab and clicking OK will allow only Anna to see this folder. We can restrict access to the entire website to Anna by right clicking on the web root ("/"), selecting Properties, and checking Anna in the Access tab.
Going global
Before we talk about setting up HFS for use on the public Internet, we need to talk about security. You obviously need to be careful when allowing Internet traffic to directly access your PC. It is critical that you use Windows Update and ensure that our system has all the most recent security patches installed. We highly recommend setting up HFS with a sufficiently complex root-level password. Also, be aware that just creating an account in HFS is not enough to protect your files, you must follow the directions in the previous section to right click on a folder or file and set the permissions to explicitly require a login to access the folder or file. Finally, we recommend testing your system from outside your network to make sure it works as you expect.
While we're talking about security, you should know that HFS can support HTTPS and SSL, but it requires setting up an additional tool called Stunnel. You can read about Stunnel here. If you're not using SSL, be aware that your file transfers are not encrypted.
To allow users outside of your home network to access HFS over the Internet, you generally need to set up port forwarding on your router. Because some ISPs block port 80, it is usually a good idea to pick a higher port, such as 8000. To set this up on our Comcast router, we start by logging into the router's web interface, then selecting Advanced, and Port Forwarding. You router will likely have a different interface, but the concept should be the same.
We enable port forwarding and add a service directing all traffic on port 8000 to the IP address shown in the HFS address bar.
The router shows port forwarding enabled.
In HFS, click on the "Port: 80" button and change the port to 8000. HFS contains a feature to test Internet access and tell you the IP address for browsers to use. To activate it, select Menu > Self Test and follow the prompts. If we see the "test successful" message, we should be all set to use HFS to connect to our PC from anywhere on the Internet.
When you're done allowing Internet users to directly connect to our PC, you should immediately turn off port forwarding on our router to improve the security on our network.
When you exit HFS, it will ask if you want to save your current file system. Saving it will create a vfs file that will remember your shared directory structure. Note that other settings, including information about users, are stored in the Windows registry by default. This can be saved to a file instead, or erased from the registry by putting HFS in Expert mode and selecting the appropriate command from Menu > Save options. Remember, HFS is a ninja tool.