<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="../org.eclipse.platform.doc.user/book.css" />
<title>Exporting resources over FTP</title>
<script language="JavaScript">
    function popup_window( url, id, width, height )
    {
      popup = window.open( url, id, 'toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=no,width=' + width + ',height=' + height + ',left=,top=' );
      popup.focus();
    }
</script><script language="JavaScript" src="help/liveHelp.js"></script></head>
<body id="tcexpftp"><a name="tcexpftp"><!-- --></a>

<h1 class="topictitle1">Exporting resources over FTP</h1>
<div><div class="skipspace"> <p>You can export a Web project to a URL using the <span>Export resources

to an FTP Server</span> wizard.</p>
<p>To export project resources to an FTP

server, do the following: </p>
 </div>
<ol><li class="skipspace"><span>Select <span><span class="menucascade"><span class="uicontrol">File</span> &gt; <span class="uicontrol">Export</span></span></span>.</span></li>
<li class="skipspace"><span>In the Export dialog, either double click on <span>FTP</span> or select <span>FTP</span> and

click <span>Next</span>. </span></li>
<li class="skipspace"><span>In the <b>Folder</b> field, specify the name of the folder that

contains the files you are exporting.</span></li>
<li class="skipspace"><span>In the <b>FTP host</b> field, enter the FTP server URL. This should

include the domain name and starting directory for the starting URL..</span></li>
<li class="skipspace"><span>In the <b>FTP Folder</b> field, enter a name of the project or

folder that you want to export the files to.</span></li>
<li class="skipspace"><span>Select one or more FTP export options.</span>  Select <b>Use

PASV Mode</b>, to enable a client (rather than the FTP server) to initiate

the transfer operation, which enables transfers through firewalls that allow

outgoing network connections only. If you select the <b>Use Firewall </b>option

and select the <b>Settings</b> push button, you will be prompted to define

setting for a socks server or an FTP proxy server. If you select the <b>FTP

Proxy</b> radio button, you must choose one of the available firewall types.</li>
<li class="skipspace"><strong>Optional: </strong><span>Supply an FTP connection timeout value, in

milliseconds.</span></li>
<li class="skipspace"><span>Click <span>Next</span> to supply FTP server login information.</span></li>
<li class="skipspace"><span>Click <span>Finish</span> to initiate the export.</span></li>
<li class="skipspace"><span>When the export is complete, verify the resulting directory structure

and file data integrity.</span></li>
</ol>
</div>
<p>
		(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.
</p>
</body>
</html>