Zen and the Art of FTP: An FTP Tutorial
This web page was last updated on: June 16, 2003
Note: This is the new, improved version of the FTP tutorial! What, you liked the old version better? OK, you can still get it. Click here. <sniff>
Another Note: This tutorial is easiest to use if you print it out first
and then refer to the printed copy as you go through the procedures for each sample task.
Yet Another Note: This web page contains many "screen shots" to help you understand how to use "WS_FTP LE", our FTP program of choice. These screen shots are fairly large image files and may take two to three minutes to download. Please be patient while the web page is downloading.
Final Note: This tutorial is designed for users of Windows 95/98/NT and the Windows 95/98/NT version of WS_FTP LE. If you use Windows 3.x., an Apple Macintosh computer, some other operating system, or if you use an FTP program other than WS_FTP LE, the concepts and principles demonstrated in this tutorial will still work for you, but you will have to look at the specific actions in the step-by-step parts of the tutorial and figure out how to do the steps using your operating system and FTP software.
Table of Contents
A. What is FTP?
B. How to Upload Files to a Remote Computer using WS_FTP LE
C. How to Download a Copy of WS_FTP LE
D. How to Install WS_FTP LE
E. How to Run WS_FTP LE
F. Setting Your Startup Directories
G. Making WS_FTP LE Automatically Recognize ASCII Files
H. Adding New ASCII (Text) File Extensions to WS_FTP LE
I. Setting File Access Permissions with WS_FTP LE
J. FTP Links
K. About the Author
A. What is FTP?
FTP stands for "file transfer protocol." FTP is the
internet's mechanism for transferring files between two computers. FTP allows you to get access to files stored in a directory on a hard drive on a remote computer connected to the internet.
B. How to Upload Files to a Remote Computer using WS_FTP LE
While you can use the FTP "client" (i.e., program) that comes with Windows
95/98/NT to upload files using FTP, the Windows 95/98/NT FTP client is a text-based tool modeled after the Unix FTP client and is not very user-friendly. A much better program is the freeware program, "WS_FTP LE", which is available on the internet.
C. How to Download a Copy of WS_FTP LE
WS_FTP LE comes in a self-extracting, self-installing download file. You must first download the self-extracting file to your hard drive. Then you run (double click) the downloaded file to install the WS_FTP LE program.
- Using your web browser, go to the WS_FTP LE web site (this is the download page for WS_FTP LE):
http://www.ipswitch.com/cgi/download_eval.pl?product=WL-1000
- When you fill out the little form, under "User Type" choose "Individual" in order to select the free versionof WS_FTP, WS_FTP LE. (If you are a commercial user, you should pay for a copy of WS_FTP Pro.) When you have finished filling out the form, click on Next ->.
- There are two WS_FTP LE variants available for download from this web site: The Windows 95/98/NT version and the Windows 3.x version. Click on the Windows 95/98/NT version (select the download site closest to you).
- In Internet Explorer 5, a "File Download" window will pop up and will ask you if you want to run the program from its current location or download to disk (Netscape and the previous versions of Internet Explorer will pop up a similar window). Select Download to Disk. Click on OK.
- The "Save As" window will pop up. In the File name: box, type in:
c:\windows\temp\ws_ftple.exe
Here is what the "Save As" window looks like:
- Click on Save.
- The file will now download to your disk. You may need to close the "Save As" window when the download is finished. This is 1.1 megabyte file. It may take several minutes to complete the download. Please be patient. The file will download to a directory (a.k.a. a "folder") on your hard drive called "c:\windows\temp".
- That is it. You have downloaded a copy of WS_FTP LE.
D. How to Install WS_FTP LE
Before you can use WS_FTP LE, you need to install the program. Here is how to do that:
- Click on Start.
- Click on Run.
- The Run window pops up. Replace whatever is in the Open: dialog box with:
c:\windows\temp\ws_ftple.exe
Here is what the Run window looks like:
- Click on OK.
- Follow the setup program's prompts. At some point during the setup you will be asked a series of up to three questions about how you will use WS_FTP LE. You must answer "yes" to one of these questions in order to use WS_FTP LE. Basically, you must use WS_FTP LE for government, academic, or personal purposes in order to qualify to use WS_FTP LE. If you don't answer yes to one of these questions, the setup program will ask you to go the Ipswitch web site and download WS_FTP Pro, their commercial product. Most people can honestly answer the final question about using WS_FTP LE for personal purposes. If you can't answer any of the three questions honestly, please pay for the commercial version. If the authors of WS_FTP can't sell a few copies of the commercial version, there is no reason for them to keep writing new versions of this excellent program.
- When the setup program is done, you will have to click on Finish to complete the setup.
E. How to Run WS_FTP LE
This is when the rubber hits the road. Now you get to actually fire up WS_FTP LE!
- Click on Start and then Programs.
- Find the program entry called WS_FTP LE. You may have to use the little arrows at the top and bottom of the programs list to scroll to the WS_FTP LE entry. Click on the
WS_FTP LE entry.
- Another window will pop up. This lists all of the programs associated with WS_FTP LE. Here is kind of what your screen will look like when you have clicked on the WS_FTP LE entry:
- Click on the WS_FTP LE main program (the bottom item in the WS_FTP LE list of items).
- WS_FTP LE will now start. The first window you are presented with is the Session Properties window. The session "properties" are all the parameters needed to connect to your directory on a remote computer. Once connected, you can upload and download files to and from your directory on the remote computer.
(FTP comes in really handy when your directory on the remote computer is your "home"
directory on a web server. You can develop your web page files, image files, graphics files, etc., locally, on your hard drive, and then "upload" the files to your home directory on the web server. These files, once uploaded, become available to everyone surfing the world wide web.)
- Here is a guide to filling out your session properties if you are a customer of Eureka! Internet Services (http://www.eurekais.com), the author's web hosting company. If you are not a Eureka! customer, you will have to check with your web hosting company for the specific information you enter into your session properties.
Profile Name: Set this to anything you like. It is just a name that helps you remember what this FTP connection is used for.
Host Name: This is the name (or IP address) of the computer you want to connect to. Set this to "206.247.84.128" (the IP address of the Eureka! web server computer). Don't type the quotes around the IP address.
Host Type: Set this to "Automatic Detect". Just in case you are curious, our web server runs the Linux operating system.
Anonymous (checkbox): Leave this unchecked.
Save Pwd (checkbox): Check this.
User ID: Enter the login name you were given when you signed up for an account. In this example, the user ID is "bwood".
Password: Enter the password you were given when you signed up for an account. For security reasons, the password displays only as a series of asterisks.
Account: Leave blank.
Comment: Leave blank.
When you are done, your Session Properties window should look like this:
- Click on OK. (From this point forward, we will follow our example user, "bwood", as he goes through the process of uploading files.) WS_FTP LE now logs bwood into his account on the web server. On the right side of the screen we see the files over in bwood's "home" directory on the web server. On the left side of the screen we see the files on bwood's local hard drive. Here is what bwood's WS_FTP LE window looks like:
- The default local directory on the left side of bwood's WS_FTP LE window is not where he wants to be. In this example, the "c:\windows" directory is the local directory displayed when bwood first logs in. He keeps the files he wants to upload in "c:\html". To get WS_FTP LE to display the "c:\html" directory, bwood would double click the little "up" pointing arrow at the top of the local file/directory list. Doing so takes bwood one step up the directory tree to the user's root directory, "c:\". Here is what the little arrow looks like:
Here is what the directory looks like after this step:

- You can now see the "html" directory in the list under "c:\". To get into this directory, bwood just double clicks the icon for the "html" directory. When he does that, the screen looks like this:

- See the blue drive letter icons in the list on the local (left) side of the WS_FTP LE display? These are drives on the local system. If bwood wanted to upload some files that were on a floppy disk in the "A" floppy drive, he would just double click the "A" drive icon to open the "A" floppy drive. Here is what the little "A" drive icon looks like:
- See the file called "index.html" on the local side of the WS_FTP LE display? That is the file that bwood is after. This is the main web page file for his web site. He wants to upload this file to his home directory on the right side of the display.
- Before bwood can upload this file, he has to tell WS_FTP LE whether the file he wants to upload is an "ASCII" (text) file or a binary (non-text). file. Choosing correctly is important because uploading an ASCII file using the binary method or uploading a binary file using the ASCII method can cause the file to be corrupted during the upload.
What kinds of files are ASCII files? All web page files (.html and .htm files). Any CGI scripts written in an interpreted language such as Perl or the Unix shell (.cgi and .pl files). Any plain text files (.txt files). Basically, any file you can read with Windows Notepad is an ASCII file.
What kinds of files are binary files? Image files (.gif and .jpg files), movie files (.mpg, .mpeg), and sound files (.wav, .mid, .ra), and others. Basically, any file you can't read in Windows Notepad is a binary file.
- Our user looks at the bottom of the WS_FTP LE window and sees two radio buttons. One is marked "ASCII" and the other is marked "Binary". Since this is a web page file (.html) he wants to upload, he chooses "ASCII" by clicking on the appropriate radio button, like so:
- To actually upload the file, he clicks on it to select it. Then he clicks on the "right pointing" arrow button to upload the file. This is the "upload" arrow button. Here is what the button looks like:
Here is what the WS_FTP LE display looks like as he clicks on the "upload" arrow button:

- Because he is a bit paranoid, our user checks to make sure "index.html" really got uploaded. He scrolls down the list of files on the server (right) side of the display until he gets near the bottom. Sure enough, there it is.
- To download from the server to his local had drive, bwood would just just reverse the process. He would click on a file on the server (right) side of the display, click on the correct download method, ASCII or binary, and then click the "download" arrow button (the left pointing arrow button).
- When he's done playing with FTP, bwood simply clicks on the "Exit" button, near the bottom right corner of the WS_FTP LE display, to close the FTP connection and exit out of WS_FTP LE.
F. Setting Your Startup Directories
Our example user, "bwood", has shown you the basics of WS_FTP LE. There are, of course, a few fun things you can do with WS_FTP LE that will make your life a little easier. The first is telling WS_FTP LE what you want your "initial" local and remote directories to be. WS_FTP LE can "remember" the local directory and remote directory you want to be in when you connect to the remote computer in question. In the example above, bwood had to poke around his local hard drive until he found the "c:\html" directory. He could have setup WS_FTP LE to automatically log into that directory each time he starts the FTP connection.
- Go ahead and log into a server like like bwood did under section E, step 6, above.
- Like bwood did, surf around your local hard drive (and around the remote server, if necessary) until you are in the directories you want to be in, both local and remote.
- Click on the Options button near the bottom of the main WS_FTP LE window.
- You should see the Session tab.
- Click on the Save Current Folders as Connection Folders button.
- Click on OK. Voila! Each time you connect to this server, WS_FTP LE will automatically place you into these directories! Nifty, huh?
G. Making WS_FTP LE Automatically Recognize ASCII Files
Our user set the transfer method to "ASCII" manually by clicking on the ASCII radio button. Remember that Auto checkbox next to the Binary radio button in the main WS_FTP LE window? Our user, bwood, could have clicked on that checkbox to let WS_FTP LE automatically decide whether to use ASCII or binary when transferring a file. If he had wanted to he could also have setup WS_FTP LE so that it starts with the Auto checkbox checked each time he logs in. Here is how to do that:
- Log into a server normally just like bwood did.
- Click on the Options buttons near the bottom of the main WS_FTP LE window.
- Click on the Session (cont'd) tab.
- Under Startup Transfer Mode, click on Auto Detect. (If you want all of your FTP connections, not just the one to this server, to use Auto Detect for the transfer mode, click on the Set as default button, too.)
- Click on OK. Notice that the little Auto checkbox next to the Binary radio button is now checked. Whenever you upload or download a ".htm", ".html", or ".txt" file, all you have to do is click on the file and then click on the appropriate arrow button. WS_FTP LE will automatically upload and download these files as ASCII files. All other files will be uploaded and downloaded using the binary method.
H. Adding New ASCII (Text) File Extensions to WS_FTP LE
What if we write Perl CGI scripts and need to upload them as well? We will need to add ".cgi" and ".pl" to the list of file extensions that WS_FTP LE automatically recognizes as ASCII files. Here is how to do that:
- Click on the Options button.
- Click on the Extensions tab.
- In the ASCII Filenames and Extension dialog box, type in ".pl".
- Click on the Add button.
- In the ASCII Filenames and Extension dialog box, type in ".cgi".
- Click on the Add button.
- Click on OK.
I. Setting File Access Permissions with WS_FTP LE
If you use FTP to upload web page files to your directory on a web server computer, and that computer runs a version of the Unix operating system (e.g., Linux), you will eventually need to set the "access permissions" on the files you upload.
A little bit of an introduction to the concept of file "access permissions" is in order. In Unix, there are three "classes" of users that can access a file: Owner, group, and other.
- Owner
- This is you, the person who "owns" (and perhaps created) the file and has the right to change and even delete the file.
- Group
- This is someone in your "workgroup" who also has some access rights to the file. This could be someone in your "department" at your office, for example, or another student in your study group, if you are a college student. On some systems, especially web servers, the owner and the group are the same (that is, group is a group consisting of one person, the owner).
- Other
- This is the same as the "public at large". For web page files, other is anyone using the world wide web.
For each class of user, there are three type of access: Read, write, and execute.
- Read
- This access is the least powerful type of access. It simply allows the user to see the contents of the file. In the case of a web page file (usually .htm or .html files), read access allows the user to view the web page file with a web browser. Read access on a graphic image file (.gif or .jpg) allows the web browser to load a graphic image file that is linked to a web page file.
- Write
- This access is the most powerul type of access. It allows the user to change and/or delete the file.
- Execute
- This is a special kind of access for program files, that is, "executable" files. An example of an executable file is a CGI script (usually .cgi and .pl files). If a user has execute access on a file, the user can make the program file run (that is, the user can "execute" the file).
As owner, you should give yourself read and write access to your files.
For group and other, most of the time these folks should have only read access to your files. If a file is an executable file, and it is designed to be run by anyone on the internet, then you should give everyone, owner, group, and other, execute access to the file.
The main thing to remember is that other should never be given write access to any of your files. Doing so allows anyone on the internet (including malicious people) to change and/or delete your files! This is a bad thing.
So, with this knowledge in hand, how do you use WS_FTP LE to set access permissions on your files? Here is a step-by-step guide:
- Connect to your directory on the remote computer per the examples in section E.
- Look through the list of files on the remote side of the display. Find a web page (.htm or .html) file. See one? Good. Click the file once to select it.
- Put the mouse pointer on top of the selected file. RIGHT click the file (click the right mouse button, not the left button).
- A menu pops up. Click on the item called chmod (UNIX). Here is what the WS_FTP LE right click window looks like as you click on the chmod (UNIX) item:
- The Remote file permissions window pops up. You can now choose the access permissions for this file. For a normal web page (.htm or .html) file, or a graphic image file (.gif or .jpg) you should check the boxes like so:
Owner: Check Read and Write
Group: Check Read
Other: Check Read
Here is what the Remote file permissions window looks like as you click on the checkboxes above:

If the file in question were an executable file (such as a CGI script, usually .cgi or .pl), you would check the boxes like this:
Owner: Check Read and Write and Execute
Group: Check Read and Execute
Other: Check Read and Execute
- When you have finished, click on OK.
- If you successfully set the new access permissions on the file, you should see "200 CHMOD command successful" down near the bottom left corner of the WS_FTP LE window.
- Repeat as needed on other files. When done, click on Exit to end your WS_FTP LE session.
J. FTP Links
- FTPNerd.com. A web site devoted to FTP issues!
- WS_FTP. An oldie but a goodie. This is my favorite FTP client application.
K. About the Author
The author of this tutorial is Brock Wood, a business analyst for the Software Group division of IBM Corporation. Prior to joining IBM, Brock owned an Internet consulting company called Eureka! Internet Services (http://www.eurekais.com). Brock is also an attorney and practiced law for 10 years with the U. S. Department of the Interior. Brock's personal e-mail address is bwood@eurekais.com.
Brock also maintains a general interest web site at
http://www.eurekais.com/brock
The web site contains links to useful government information, computer utility programs, games, on-line magazines and newspapers, art, music, and other nifty stuff. Check it out!
Copyright © 1996-2003 by Brock Wood. All rights reserved.
[ Go to Top ]