FTP upload with Flex 3

Is it possible to upload a partiular file, in this case a
users answer file, to an FTP site with out any interaction from the
user. For example, when they are done the test, upload the answer
file to an FTP site (without using cold fusion or asp or
.net)?

I have downloaded the coded and converted it to work with
Flex 3 (changed it to WindowedApplication, and updated the
FlexFTP-app.xml file). When i run it, I get the following:
220 jpl Microsoft FTP Service (Version 5.0).
USER jhughes
331 Password required for jhughes.
PASS *****
230 User jhughes logged in.
PASV
227 Entering Passive Mode (66,109,241,93,12,42).
LIST
125 Data connection already open; Transfer starting.
226 Transfer complete.
TYPE I
200 Type set to I.
PASV
227 Entering Passive Mode (66,109,241,93,12,43).
STOR //test.txt
550 /test.txt: Access is denied.
It allows me to connect when I have the correct password but
it will not allow me to upload or download files. Any ideas?

Similar Messages

  • Can I build a photo uploader with Flex?

    Hi,
    I am looking into Flex as a possible platform to build a new
    photo website. I know that many of my requirements fit great with
    the flex/flash platform. But one specific issue is to build an
    easy-to-use, easy-to-deploy photo uploader which feels like
    Flickr/Picasa and can manage picking 100s of files/folders. That
    means I need:
    1 - local read access to the filesystem to browse JPGs for
    upload
    2 - local write access to add EXIF keywords to selected JPGs
    (i.e. uploaded tag)
    3 - network access to upload to my website
    For the absolute simplest user experience, I think I need to
    run in a local-trusted sandbox, an SWF downloaded and configured by
    an installer. I think that will get me 1 and 3. But I think 2 is a
    problem - am I limited to only writing local shared objects to the
    filesystem?
    If this is so, is there a workaround for this? For example,
    can I call a local executable to write the EXIF data to JPG, or can
    I use the Flex/AJAX bridge to expose my SWF to javascript and
    somehow use that to write the EXIF data?
    Also, can someone point me in the right direction to
    understand how to write an installer that will configure a
    local-trusted SWF?
    Thanks,
    m.

    Sorry, no. That feature is not supported in iPhoto for iOS.
    You can send feedback to Apple here: http://www.apple.com/feedback/iphoto_ios.html

  • FTP Uploading with Safari

    Hi.
    I'm new to mac, and can't seem to upload files to FTP sites (for website hosting/updates etc)
    On my old windows machine, I could just drag & drop the files onto the FTP site, but safari won't even let me open the FTP site at all.
    Any ideas or suggestions would be appreciated.

    Here are a couple of other sites discussing your issues:
    http://www.macosxhints.com/article.php?story=20030108100758649
    http://forums.macosxhints.com/archive/index.php/t-53431.html

  • File upload with 'asp vb' backend

    Hello,
    I am trying to get file uploading with flex (flash buider) working. There are plenty of examples with a php backend, but i need the script for a 'asp vb' backend.
    I' ve tried lots of different approaches but can't get it right. Someone out there with a solution?
    Thanx!!

    Believe it or not I have to do this also.
    I have legacy ASP code that uses ASPUpload that I'd like to get working with my Flash CS5 and FlashBuilder Burrito front-ends.
    it's just multipart encoded.
    So, if you first test it with ASPUpload and a simple form, trying just FILE1 first, and it works with ASP backend then tackle the FlashBuilder side with some debugging.
    ASPUpload is still an extremely embedded component on tens of thousands if not more sites, and it was just updated, but I think the previous version just before this update, the one that's out there in code on so many sites, that is what Flash needs to work with.
    ASPUpload is doing its part, as it follows all the multipart encoded RFC rules and has worked for years.
    I'd love to join you in finding out what's going on here.
    This is a long-standing issue.
    I've done PHP also.  But again, enhancing an interface with FlashBuilder4 or Burrito, to integrate with working legacy code makes it hard when something is not working on the Flash side (it appears anyway) as ASPUpload form posts are extremely easy.

  • FTP upload slow/timeout

    When I try to upload, via Fetch, Dreamweaver, whatever, the upload times out. I am wired (ethernet) to a router and out via DSL. The PC on the same router is sometimes slow on the upload, but nothing like the mac.
    any help?
    thanks.

    Update.
    I tested the ftp upload with success through a different network.
    The issue seems to be a known bug in the Thomson modem from my ISP.
    The modem will be exchanged.

  • How do I automatically upload files to an FTP server with Compressor 4?

    So I've been using Compressor 4 in order to compress some videos into a manageable size for streaming. However, I've been trying to figure out how to set up an automatic FTP upload to the program Transmit through Compressor 4, but have been running into roadblocks. When choosing a destination by using the plus icon in the destinations tab, the choice of local or remote no longer appears. Also, when going to the actions tab in the Inspector box, the option to "Execute Applescript" is also gone.
    Has anyone found a way around this yet? I have no experience with Automator, so I am hesitatnt in spending the time to learn a new program just to make the process of compressing and uploading more efficient.

    Hi Nick.
    I'm afraid it went missing in the 4.0.3 update for whatever reason. Unless you have a way of rolling C back one version, you'll either have to write a work-around or see whether it re-appears in a future version.
    Also, http://www.apple.com/feedback/compressor.html
    Russ

  • Help with ftp upload problem

    Hi I am using a ftp class (known as FTPConnection) that i found on this site: http://www.nsftools.com/tips/JavaFtp.htm , and they only have an example of how to download a File through FTP and not upload one. I am in the proccess of making an FTP upload applet, and need some help on getting upload to work. I also need it to work on both a Pc and mac, so that may be attributing to the problem becuase i am currently on a mac which uses file:// instead of C:\\. Ill post the ftp class, and a snippet of my code that tries to upload a selected file.
    FTPConnection
    /* <!-- in case someone opens this in a browser... --> <pre> */
    * File:   FTPConnection.java
    * Author: Bret Taylor <[email protected]>
    * URL: http://www.stanford.edu/~bstaylor/cs/ftpconnection/FTPConnection.java.shtml
    * see also <a href="http://www.nsftools.com/tips/JavaFtp.htm">http://www.nsftools.com/tips/JavaFtp.htm</a>
    * $Id$
    * Parts of this code were adopted from a variety of other FTP classes the
    * author has encountered that he was not completely satisfied with.  If you
    * think more thanks are due to any particular author than is given, please
    * let him know.  With that caveat, this class can be freely distributed and
    * modified as long as Bret Taylor is given credit in the source code comments.
    * Modified by Julian Robichaux -- http://www.nsftools.com
    * Added constructors, logout(), listFiles(), listSubdirectories(), getAndParseDirList(),
    * processFileListCommand(), and overloaded getFullServerReply().
    * Also added StringBuffer parameter options to transferData() and executeDataCommand()
    * and did a few other little things.
    import java.io.*;
    import java.net.*;
    import java.util.*;
    * <p>A wrapper for the network and command protocols needed for the most common
    * FTP commands.  Standard usage looks something like this:</p>
    * <pre> FTPConnection connection = new FTPConnection();
    * try {
    *     if (connection.connect(host)) {
    *         if (connection.login(username, password)) {
    *             connection.downloadFile(serverFileName);
    *             connection.uploadFile(localFileName);
    *         connection.disconnect();
    * } catch (UnknownHostException e) {
    *     // handle unknown host
    * } catch (IOException e) {
    *     // handle I/O exception
    * }</pre>
    * <p>Most FTP commands are wrapped by easy-to-use methods, but in case clients
    * need more flexibility, you can execute commands directly using the methods
    * <a href="#executeCommand(java.lang.String)">executeCommand</a> and
    * <a href="#executeDataCommand(java.lang.String,
    * java.io.OutputStream)">executeDataCommand</a>,
    * the latter of which is used for commands that require an open data port.</p>
    * @author Bret Taylor
    * @author Julian Robichaux
    * @version 1.01
    public class FTPConnection extends Object {
         * If this flag is on, we print out debugging information to stdout during
         * execution.  Useful for debugging the FTP class and seeing the server's
         * responses directly.
        private static boolean PRINT_DEBUG_INFO = false;
         * The socket through which we are connected to the FTP server.
        private Socket connectionSocket = null;
         private String username;
         private String password;
         private String host;
         * The socket output stream.
        private PrintStream outputStream = null;
         * The socket input stream.
        private BufferedReader inputStream = null;
         * The offset at which we resume a file transfer.
        private long restartPoint = 0L;
         * Added by Julian: If this flag is on, we're currently logged in to something.
        private boolean loggedIn = false;
         * Added by Julian: This is the line terminator to use for multi-line responses.
        public String lineTerm = "\n";
         * Added by Julian: This is the size of the data blocks we use for transferring
         * files.
        private static int BLOCK_SIZE = 4096;
         * Added by Julian: After you create an FTPConnection object, you will call the
         * connect() and login() methods to access your server. Please don't forget to
         * logout() and disconnect() when you're done (it's only polite...).
        public FTPConnection ()
             // default constructor (obviously) -- this is just good to have...
         * Added by Julian: Allows you to specify if you want to send debug output to
         * the console (true if you do, false if you don't).
        public FTPConnection (boolean debugOut)
             PRINT_DEBUG_INFO = debugOut;
         public FTPConnection (String user, String pw, String host_)
             username=user;
              password=pw;
              host=host_;
              PRINT_DEBUG_INFO = false;
         * Prints debugging information to stdout if the private flag
         * <code>PRINT_DEBUG_INFO</code> is turned on.
        private void debugPrint(String message) {
            if (PRINT_DEBUG_INFO) System.err.println(message);
         * Connects to the given FTP host on port f, the default FTP port.
        public boolean connect(String host)
            throws UnknownHostException, IOException
            return connect(host, 21);
         * Connects to the given FTP host on the given port.
        public boolean connect(String host, int port)
            throws UnknownHostException, IOException
            connectionSocket = new Socket(host, port);
              connectionSocket.setSoTimeout(10000);
            outputStream = new PrintStream(connectionSocket.getOutputStream());
            inputStream = new BufferedReader(new
                           InputStreamReader(connectionSocket.getInputStream()));
            if (!isPositiveCompleteResponse(getServerReply())){
                disconnect();
                return false;
            return true;
         * Disconnects from the host to which we are currently connected.
         static boolean URLexists(String URLName)
              try
                   HttpURLConnection.setFollowRedirects(false);
                   // note : you may also need
                   // HttpURLConnection.setInstanceFollowRedirects(false)
                   HttpURLConnection con =
                   (HttpURLConnection) new URL(URLName).openConnection();
                   con.setRequestMethod("HEAD");
                   return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
              catch (Exception e)
                   e.printStackTrace();
                   return false;
         public String getSimpleFileName(File f)
              String path=f.getPath();
              String fileName=path.replace("\\", "/");
              int slashPos = fileName.lastIndexOf("/");
              fileName=fileName.substring(slashPos+1);
              return fileName;
         public String verifyFileName(String name)
              int count=0;
              //String url="http://chris-malcolm.com/images/"+URLEncoder.encode(name).replace("+", "%20");
              while (URLexists("http://chris-malcolm.com/images/"+URLEncoder.encode(name).replace("+", "%20"))==true)
              count++;
              name=FileExt(name)[0]+"-"+count+"."+FileExt(name)[1];
              return name;
         public String[] FileExt(String fileName)
            int dotPos = fileName.lastIndexOf(".");
              fileName=fileName.replace("\\", "/");
              int slashPos = fileName.lastIndexOf("/");
              String extension, name;
              if (slashPos==fileName.length()-1)
                   fileName=fileName.substring(0, fileName.length()-1);
                   slashPos=fileName.lastIndexOf("/");
                   extension="/";
                   name=fileName.substring(slashPos+1);
              else if(dotPos==-1)
                   name=fileName.substring(slashPos+1);
                   extension="";
              else
                   extension = fileName.substring(dotPos+1);
                   name=fileName.substring(slashPos+1, dotPos);
                   String[] output={name, extension};
                   return output;
              String[] output={name, extension};
              return output;
        public void disconnect()
            if (outputStream != null) {
                try {
                      if (loggedIn) { logout(); };
                    outputStream.close();
                    inputStream.close();
                    connectionSocket.close();
                } catch (IOException e) {}
                outputStream = null;
                inputStream = null;
                connectionSocket = null;
         * Wrapper for the commands <code>user [username]</code> and <code>pass
         * [password]</code>.
        public boolean login(String username, String password)
            throws IOException
            int response = executeCommand("user " + username);
            if (!isPositiveIntermediateResponse(response)) return false;
            response = executeCommand("pass " + password);
            loggedIn = isPositiveCompleteResponse(response);
            return loggedIn;
         * Added by Julian: Logout before you disconnect (this is good form).
        public boolean logout()
            throws IOException
            int response = executeCommand("quit");
            loggedIn = !isPositiveCompleteResponse(response);
            return !loggedIn;
         * Wrapper for the command <code>cwd [directory]</code>.
        public boolean changeDirectory(String directory)
            throws IOException
            int response = executeCommand("cwd " + directory);
            return isPositiveCompleteResponse(response);
         * Wrapper for the commands <code>rnfr [oldName]</code> and <code>rnto
         * [newName]</code>.
        public boolean renameFile(String oldName, String newName)
            throws IOException
            int response = executeCommand("rnfr " + oldName);
            if (!isPositiveIntermediateResponse(response)) return false;
            response = executeCommand("rnto " + newName);
            return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>mkd [directory]</code>.
        public boolean makeDirectory(String directory)
            throws IOException
            int response = executeCommand("mkd " + directory);
            return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>rmd [directory]</code>.
        public boolean removeDirectory(String directory)
            throws IOException
            int response = executeCommand("rmd " + directory);
            return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>cdup</code>.
        public boolean parentDirectory()
            throws IOException
            int response = executeCommand("cdup");
            return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>dele [fileName]</code>.
        public boolean deleteFile(String fileName)
            throws IOException
            int response = executeCommand("dele " + fileName);
            return isPositiveCompleteResponse(response);
         * Wrapper for the command <code>pwd</code>.
        public String getCurrentDirectory()
            throws IOException
            String response = getExecutionResponse("pwd");
            StringTokenizer strtok = new StringTokenizer(response);
            // Get rid of the first token, which is the return code
            if (strtok.countTokens() < 2) return null;
            strtok.nextToken();
            String directoryName = strtok.nextToken();
            // Most servers surround the directory name with quotation marks
            int strlen = directoryName.length();
            if (strlen == 0) return null;
            if (directoryName.charAt(0) == '\"') {
                directoryName = directoryName.substring(1);
                strlen--;
            if (directoryName.charAt(strlen - 1) == '\"')
                return directoryName.substring(0, strlen - 1);
            return directoryName;
         * Wrapper for the command <code>syst</code>.
        public String getSystemType()
            throws IOException
            return excludeCode(getExecutionResponse("syst"));
         * Wrapper for the command <code>mdtm [fileName]</code>.  If the file does
         * not exist, we return -1;
        public long getModificationTime(String fileName)
            throws IOException
            String response = excludeCode(getExecutionResponse("mdtm " + fileName));
            try {
                return Long.parseLong(response);
            } catch (Exception e) {
                return -1L;
         * Wrapper for the command <code>size [fileName]</code>.  If the file does
         * not exist, we return -1;
        public long getFileSize(String fileName)
            throws IOException
            String response = excludeCode(getExecutionResponse("size " + fileName));
            try {
                return Long.parseLong(response);
            } catch (Exception e) {
                return -1L;
         * Wrapper for the command <code>retr [fileName]</code>.
        public boolean downloadFile(String fileName)
            throws IOException
            return readDataToFile("retr " + fileName, fileName);
         * Wrapper for the command <code>retr [serverPath]</code>. The local file
         * path to which we will write is given by <code>localPath</code>.
        public boolean downloadFile(String serverPath, String localPath)
            throws IOException
            return readDataToFile("retr " + serverPath, localPath);
         * Wrapper for the command <code>stor [fileName]</code>.
        public boolean uploadFile(String fileName)
            throws IOException
            return writeDataFromFile("stor " + fileName, fileName);
         * Wrapper for the command <code>stor [localPath]</code>. The server file
         * path to which we will write is given by <code>serverPath</code>.
        public boolean uploadFile(String serverPath, String localPath)
            throws IOException
            return writeDataFromFile("stor " + serverPath, localPath);
         * Set the restart point for the next download or upload operation.  This
         * lets clients resume interrupted uploads or downloads.
        public void setRestartPoint(int point)
            restartPoint = point;
            debugPrint("Restart noted");
         * Gets server reply code from the control port after an ftp command has
         * been executed.  It knows the last line of the response because it begins
         * with a 3 digit number and a space, (a dash instead of a space would be a
         * continuation).
        private int getServerReply()
            throws IOException
            return Integer.parseInt(getFullServerReply().substring(0, 3));
         * Gets server reply string from the control port after an ftp command has
         * been executed.  This consists only of the last line of the response,
         * and only the part after the response code.
        private String getFullServerReply()
            throws IOException
            String reply;
            do {
                reply = inputStream.readLine();
                debugPrint(reply);
            } while(!(Character.isDigit(reply.charAt(0)) &&
                      Character.isDigit(reply.charAt(1)) &&
                      Character.isDigit(reply.charAt(2)) &&
                      reply.charAt(3) == ' '));
            return reply;
         * Added by Julian: Returns the last line of the server reply, but also
         * returns the full multi-line reply in a StringBuffer parameter.
        private String getFullServerReply(StringBuffer fullReply)
             throws IOException
            String reply;
            fullReply.setLength(0);
            do {
                reply = inputStream.readLine();
                debugPrint(reply);
                fullReply.append(reply + lineTerm);
            } while(!(Character.isDigit(reply.charAt(0)) &&
                      Character.isDigit(reply.charAt(1)) &&
                      Character.isDigit(reply.charAt(2)) &&
                      reply.charAt(3) == ' '));
              // remove any trailing line terminators from the fullReply
              if (fullReply.length() > 0) 
                   fullReply.setLength(fullReply.length() - lineTerm.length());
            return reply;
         * Added by Julian: Gets a list of files in the current directory.
         public String listFiles()
              throws IOException
              return listFiles("");
         * Added by Julian: Gets a list of files in either the current
         * directory, or one specified as a parameter. The 'params' parameter
         * can be either a directory name, a file mask, or both (such as
         * '/DirName/*.txt').
         public String listFiles(String params)
              throws IOException
              StringBuffer files = new StringBuffer();
              StringBuffer dirs = new StringBuffer();
              if (!getAndParseDirList(params, files, dirs))
                   debugPrint("Error getting file list");
              return files.toString();
         * Added by Julian: Gets a list of subdirectories in the current directory.
         public String listSubdirectories()
              throws IOException
              return listSubdirectories("");
         * Added by Julian: Gets a list of subdirectories in either the current
         * directory, or one specified as a parameter. The 'params' parameter
         * can be either a directory name, a name mask, or both (such as
         * '/DirName/Sub*').
         public String listSubdirectories(String params)
              throws IOException
              StringBuffer files = new StringBuffer();
              StringBuffer dirs = new StringBuffer();
              if (!getAndParseDirList(params, files, dirs))
                   debugPrint("Error getting dir list");
              return dirs.toString();
         * Added by Julian: Sends and gets the results of a file list command,
         * like LIST or NLST.
        private String processFileListCommand(String command)
            throws IOException
            StringBuffer reply = new StringBuffer();
            String replyString;
            // file listings require you to issue a PORT command,
            // like a file transfer
              boolean success = executeDataCommand(command, reply);
              if (!success)
                   return "";
            replyString = reply.toString();
            // strip the trailing line terminator from the reply
            if (reply.length() > 0)
                 return replyString.substring(0, reply.length() - 1);
            }  else  {
                 return replyString;
          * Added by Julian: Gets a directory list from the server and parses
          * the elements into a list of files and a list of subdirectories.
         private boolean getAndParseDirList(String params, StringBuffer files, StringBuffer dirs)
              throws IOException
              // reset the return variables (we're using StringBuffers instead of
              // Strings because you can't change a String value and pass it back
              // to the calling routine -- changing a String creates a new object)
              files.setLength(0);
              dirs.setLength(0);
              // get the NLST and the LIST -- don't worry if the commands
              // don't work, because we'll just end up sending nothing back
              // if that's the case
              String shortList = processFileListCommand("nlst " + params);
              String longList = processFileListCommand("list " + params);
              // tokenize the lists we got, using a newline as a separator
              StringTokenizer sList = new StringTokenizer(shortList, "\n");
              StringTokenizer lList = new StringTokenizer(longList, "\n");
              // other variables we'll need
              String sString;
              String lString;
              // assume that both lists have the same number of elements
              while ((sList.hasMoreTokens()) && (lList.hasMoreTokens())) {
                   sString = sList.nextToken();
                   lString = lList.nextToken();
                   if (lString.length() > 0)
                        if (lString.startsWith("d"))
                             dirs.append(sString.trim() + lineTerm);
                             debugPrint("Dir: " + sString);
                        }  else if (lString.startsWith("-"))  {
                             files.append(sString.trim() + lineTerm);
                             debugPrint("File: " + sString);
                        }  else  {
                             // actually, symbolic links will start with an "l"
                             // (lowercase L), but we're not going to mess with
                             // those
                             debugPrint("Unknown: " + lString);
              // strip off any trailing line terminators and return the values
              if (files.length() > 0)  {  files.setLength(files.length() - lineTerm.length());  }
              if (dirs.length() > 0)  {  dirs.setLength(dirs.length() - lineTerm.length());  }
              return true;
         * Executes the given FTP command on our current connection, returning the
         * three digit response code from the server.  This method only works for
         * commands that do not require an additional data port.
        public int executeCommand(String command)
            throws IOException
            outputStream.println(command);
            return getServerReply();
         * Executes the given FTP command on our current connection, returning the
         * last line of the server's response.  Useful for commands that return
         * one line of information.
        public String getExecutionResponse(String command)
            throws IOException
            outputStream.println(command);
            return getFullServerReply();
         * Executes the given ftpd command on the server and writes the results
         * returned on the data port to the file with the given name, returning true
         * if the server indicates that the operation was successful.
        public boolean readDataToFile(String command, String fileName)
            throws IOException
            // Open the local file
            RandomAccessFile outfile = new RandomAccessFile(fileName, "rw");
            // Do restart if desired
            if (restartPoint != 0) {
                debugPrint("Seeking to " + restartPoint);
                outfile.seek(restartPoint);
            // Convert the RandomAccessFile to an OutputStream
            FileOutputStream fileStream = new FileOutputStream(outfile.getFD());
            boolean success = executeDataCommand(command, fileStream);
            outfile.close();
            return success;
         * Executes the given ftpd command on the server and writes the contents
         * of the given file to the server on an opened data port, returning true
         * if the server indicates that the operation was successful.
        public boolean writeDataFromFile(String command, String fileName)
            throws IOException
            // Open the local file
            RandomAccessFile infile = new RandomAccessFile(fileName, "r");
            // Do restart if desired
            if (restartPoint != 0) {
                debugPrint("Seeking to " + restartPoint);
                infile.seek(restartPoint);
            // Convert the RandomAccessFile to an InputStream
            FileInputStream fileStream = new FileInputStream(infile.getFD());
            boolean success = executeDataCommand(command, fileStream);
            infile.close();
            return success;
         * Executes the given ftpd command on the server and writes the results
         * returned on the data port to the given OutputStream, returning true
         * if the server indicates that the operation was successful.
        public boolean executeDataCommand(String command, OutputStream out)
            throws IOException
            // Open a data socket on this computer
            ServerSocket serverSocket = new ServerSocket(0);
            if (!setupDataPort(command, serverSocket)) return false;
            Socket clientSocket = serverSocket.accept();
            // Transfer the data
            InputStream in = clientSocket.getInputStream();
            transferData(in, out);
            // Clean up the data structures
            in.close();
            clientSocket.close();
            serverSocket.close();
            return isPositiveCompleteResponse(getServerReply());   
         * Executes the given ftpd command on the server and writes the contents
         * of the given InputStream to the server on an opened data port, returning
         * true if the server indicates that the operation was successful.
        public boolean executeDataCommand(String command, InputStream in)
            throws IOException
            // Open a data socket on this computer
            ServerSocket serverSocket = new ServerSocket(0);
            if (!setupDataPort(command, serverSocket)) return false;
            Socket clientSocket = serverSocket.accept();
            // Transfer the data
            OutputStream out = clientSocket.getOutputStream();
            transferData(in, out);
            // Clean up the data structures
            out.close();
            clientSocket.close();
            serverSocket.close();
            return isPositiveCompleteResponse(getServerReply());   
         * Added by Julian: Executes the given ftpd command on the server
         * and writes the results returned on the data port to the given
         * StringBuffer, returning true if the server indicates that the
         * operation was successful.
        public boolean executeDataCommand(String command, StringBuffer sb)
            throws IOException
            // Open a data socket on this computer
            ServerSocket serverSocket = new ServerSocket(0);
            if (!setupDataPort(command, serverSocket)) return false;
            Socket clientSocket = serverSocket.accept();
            // Transfer the data
            InputStream in = clientSocket.getInputStream();
            transferData(in, sb);
            // Clean up the data structures
            in.close();
            clientSocket.close();
            serverSocket.close();
            return isPositiveCompleteResponse(getServerReply());   
         * Transfers the data from the given input stream to the given output
         * stream until we reach the end of the stream.
        private void transferData(InputStream in, OutputStream out)
            throws IOException
            byte b[] = new byte[BLOCK_SIZE];
            int amount;
            // Read the data into the file
            while ((amount = in.read(b)) > 0) {
                out.write(b, 0, amount);
         * Added by Julian: Transfers the data from the given input stream
         * to the given StringBuffer until we reach the end of the stream.
        private void transferData(InputStream in, StringBuffer sb)
            throws IOException
            byte b[] = new byte[BLOCK_SIZE];
            int amount;
            // Read the data into the StringBuffer
            while ((amount = in.read(b)) > 0) {
                sb.append(new String(b, 0, amount));
         * Executes the given ftpd command on the server and writes the results
         * returned on the data port to the given FilterOutputStream, returning true
         * if the server indicates that the operation was successful.
        private boolean setupDataPort(String command, ServerSocket serverSocket)
            throws IOException
            // Send our local data port to the server
            if (!openPort(serverSocket)) return false;
            // Set binary type transfer
            outputStream.println("type i");
            if (!isPositiveCompleteResponse(getServerReply())) {
                debugPrint("Could not set transfer type");
                return false;
            // If we have a restart point, send that information
            if (restartPoint != 0) {
                outputStream.println("rest " + restartPoint);
                restartPoint = 0;
                // TODO: Interpret server response here
                getServerReply();
            // Send the command
            outputStream.println(command);
            return isPositivePreliminaryResponse(getServerReply());
         * Get IP address and port number from serverSocket and send them via the
         * <code>port</code> command to the ftp server, returning true if we get a
         * valid response from the server, returning true if the server indicates
         * that the operation was successful.
        private boolean openPort(ServerSocket serverSocket)
            throws IOException
            int localport = serverSocket.getLocalPort();
            // get local ip address
            InetAddress inetaddress = serverSocket.getInetAddress();
            InetAddress localip;
            try {
                localip = inetaddress.getLocalHost();
            } catch(UnknownHostException e) {
                debugPrint("Can't get local host");
                return false;
            // get ip address in high byte order
            byte[] addrbytes = localip.getAddress();
            // tell server what port we are listening on
            short addrshorts[] = new short[4];
            // problem:  bytes greater than 127 are printed as negative numbers
            for(int i = 0; i <= 3; i++) {
                addrshorts[i] = addrbytes;
    if (addrshorts[i] < 0)
    addrshorts[i] += 256;
    outputStream.println("port " + addrshorts[0] + "," + addrshorts[1] +
    "," + addrshorts[2] + "," + addrshorts[3] + "," +
    ((localport & 0xff00) >> 8) + "," +
    (localport & 0x00ff));
    return isPositiveCompleteResponse(getServerReply());
    * True if the given response code is in the 100-199 range.
    private boolean isPositivePreliminaryResponse(int response)
    return (response >= 100 && response < 200);
    * True if the given response code is in the 300-399 range.
    private boolean isPositiveIntermediateResponse(int response)
    return (response >= 300 && response < 400);
    * True if the given response code is in the 200-299 range.
    private boolean isPositiveCompleteResponse(int response)
    return (response >= 200 && response < 300);
    * True if the given response code is in the 400-499 range.
    private boolean isTransientNegativeResponse(int response)
    return (response >= 400 && response < 500);
    * True if the given response code is in the 500-5

    ok i tried explaining th eproblem in the previous post, but i apologize if my explanation was poor. anyways, i tried to look into it further by doing a printStackTrace() and believe it may be a read error. here is my new updated snippet, and also a link to a screenshot ([click here for screenshot|http://img143.imageshack.us/my.php?image=picture4qr0.png]) of what the error looks like on my end. it seems like a socket is not being read, or maybe it is initialized properly. Again I apologize if my problem is vague, but I do appreciate your input. thanks.
    updated code snippet
    public void uploadFiles()
              statusLabel.setVisible(true);
              errorLabel.setVisible(true);
              uploadButton.setVisible(false);
              footer.setVisible(false);
              holdingPanel.setVisible(false);
              pbar.setVisible(true);
              pbar = new JProgressBar();
              pbar.setMinimum(0);
              float Total=0;
              for (int i=0; i<fileLengths.size(); i++)
                   if(((java.lang.Boolean)model.getValueAt(i,1)).toString().equals("true"))
                        Total+=Float.parseFloat((String)fileLengths.get(i));
              pbar.setMaximum((int)Total);
              String info="";
              try
                   ftp=new FTPConnection(false);
                   ftp.connect("ftp.chris-malcolm.com");
                   if (ftp.login("chrismal", "***"))
                        statusLabel.setText("Status: Connected.");
                        info+="Successfully logged in!\n";
                        info+="System type is: " + ftp.getSystemType()+"\n";
                        info+="Current directory is: " + ftp.getCurrentDirectory()+"\n";
                        if (ftp.changeDirectory("/www/images/"))
                             info+="directory changed to: " + ftp.getCurrentDirectory()+"\n";
                                                 try
                             for (int i=0; i<allFiles.size(); i++)
                                  if(((java.lang.Boolean)model.getValueAt(i,1)).toString().equals("true"))
                                       String f=client.verifyFileName((String)model.getValueAt(i,0));
                                       String f2=""+((File)allFiles.get(i)).getPath();
                                       info+="filename: "+f2+"\n";
                                       if (ftp.uploadFile(f2))
                                            statusLabel.setText("Status: Uploading "+f+" - "+i+" of "+calculateTotalFiles()+" files(s)");
                                            pbar.setValue(Integer.parseInt((String)fileLengths.get(i)));
                                       else
                                            errorLabel.setText("Error occured while uploading"+f2+"\n");
                        catch(Exception de) 
                             StringWriter sw = new StringWriter();
                                  PrintWriter pw = new PrintWriter(sw);
                                  de.printStackTrace(pw);
                                  pw.close();
                                  //errorLabel.setText("<html>ERROR:"+sw.toString().replace("\n", "<br>")+"</html>");
                                  info+="Error: "+de.getMessage()+"\n";
                                  info+="Trace: "+sw+"\n";
                             try { ftp.disconnect(); statusLabel.setText("Status: disconnected.");}  catch(Exception e2)  {};
                        else
                             info+="could not change directory\n";
                   else
                        info+="could not login";
              catch (Exception e)
                   StringWriter sw = new StringWriter();
                                  PrintWriter pw = new PrintWriter(sw);
                                  e.printStackTrace(pw);
                                  pw.close();
                                  info+="Error: "+e.getMessage()+"\n";
                                  info+="Trace: "+sw+"\n";
                   try { ftp.disconnect();  statusLabel.setText("Status: disconnected.");}  catch(Exception e2)  {};
              errorLabel.setText("ERROR:"+info);
              JOptionPane.showMessageDialog(this, info, "test", JOptionPane.PLAIN_MESSAGE);
              try { ftp.disconnect(); statusLabel.setText("Status: disconnected.");}  catch(Exception e2)  {};
         Edited by: cjm771 on Jul 13, 2008 7:23 PM

  • I am running OS 10.7.5 on a Macbook. Problems with ftp upload

    I am running OS 10.7.5 on a Macbook. I am trying to upload to an ftp server. The connection is established with no problem but any attempt to upload files times out. This is an intermittent problem. I have been using fetch as an ftp client quuite successfully for a long time. The problem starts when there is trouble with the broadband connection. The ftp upload then falls over. I have managed to re-establish it in the past by setting up the connections from scratch. This has not worked this time. The same thing happens with two other clients that I have, so it is not specifically related to fetch. I can uplad files from PC's and by using my iphone's 3g connection as a personal hotspot. The problem seems to lie with the way the macs (the same thing happens on an older mac also running OSX) communicate with the router. I have tried with and without passive mode.
    Please can anyone help. It is driving me to distraction.
    Oh and I have just downloaded the latest security update.

    For anyone else with the same problem.
    My husband discovered the problem is with the MTU, maximum transmission unit . This article describes the problem and solution very clearly
    http://www.macgurulounge.com/manually-managing-mtu-size-in-mac-os-x/
    Our router was running at 1492 and the mac at 1500. I found that resetting to 1400 cured the problem.
    I hope this is helpful to other folk having the same problem

  • Trouble with browser editing FTP upload

    I have been updating a site to a sub-domain of my personal site while working for client. Yesterday when I tried to walk them through the in-browser editing feature I got an error that wouldn't let me login to edit the site. I followed all of the instructions in the error message (use the "upload via FTP" setting, sign in with the same user) but I still can't log in. Is this a bug with how Muse handles sub-domains, or what else am I doing wrong?

    No, everything uploaded correctly. You can see my site properly  
    -Eric
    On August 23, 2014 at 3:37:13 PM EDT, Zak Williamson (Adobe) <[email protected]> wrote:      Trouble with browser editing FTP upload    reated by Zak Williamson (Adobe) in Help with using Adobe Muse CC - View the full discussion   When using File > Upload to FTP Host... do you receive a warning message that the domain name could not be validated?    Please note that the Adobe Forums do not accept email attachments. If you want to embed a screen image in your message please visit the thread in the forum to embed the image at https://forums.adobe.com/message/6668001#6668001  Replies to this message go to everyone subscribed to this thread, not directly to the person who posted the message. To post a reply, either reply to this email or visit the message page:   To unsubscribe from this thread, please visit the message page at . In the Actions box on the right, click the Stop Email Notifications link.   Start a new discussion in Help with using Adobe Muse CC by email or at Adobe Community  For more information about maintaining your forum email notifications please go to http://forums.adobe.com/thread/416458?tstart=0.

  • Free Website Hosting With No Ads, Free FTP Uploading

    Hi there!
    I am working on a website for a technology scholarship I am applying for. I need to upload my iWeb site, so I am going to use Cyberduck. I need a web host that is ad free (it is a requirement of the scholarship) and offers free FTP uploading (so I can upload using Cyberduck). Thanks for your help!

    I need a web host that is ad free (it is a requirement of the scholarship) and offers free FTP uploading (so I can upload using Cyberduck).
    Who is your ISP? Normally ISP's offer their subscribers a certain (smallish) amount of free ftp accessible web space. That would probably be your best bet, because others are unlikely to meet your criteria.
    Or perhaps a school you have a relationship with.

  • Uploading with ftp client.

    I am constantly updating my site on iweb but am wondering the best way to upload it. I use captain ftp and upload the whole site again everytime i update it. Is this right? Is it not using all my allocated data transfer limit.

    Michael,
    What you wrote is basically what I understood I had to do but I hoped there was a better way than uploading manually.
    In fact, even if iWeb has the BAD habit to re-create your whole site (especially when you add a new page) thus making large sites very difficult to manage (my poor Mac takes two hours to do that with my 220 MB domain file...), at least iWeb DOES know what it actually has to upload on .Mac.
    Whenever you apply a change, you see icons on the left panel going red.
    Unfortunately, that doesn't work with FTP publishing so you have to:
    - keep track of what you have done or
    - FTP upload your whole site any time you make a change or
    - keep your "sites" in different domain files and make full uploads shorter
    I do hope this thing is going to be solved, sooner or later: I have a .Mac account but, just as James wrote, there are many good reasons to use a third party's hosting.
    At least, I'd like to be able to turn off the "Publish to .Mac" feature in the preference panel in order not to upload by mistake to .Mac a site I only upload via FTP.

  • Problems With FTP Upload in Leopard 10.5.3-4

    Hi, I experience a strange problem with ftp upload speed in 10.5.3-4. When I start upload a file to my trusted ftp server the upload speed starts to decrease from 300 kb/sec to 35 -40 kb/sec. It remains normal for 1-2 minutes (about 300 kb/sec) and then smoothly decreases to 35 -40 kb/sec. Pressing Stop and then Resume in Cyberduck makes speed normal for 1-2 minutes and then it starts to decrease again. It does not depend on ftp-client, it does not matter if I use either Cyberduck, Transmit or Fetch. It happens if I use either ethernet or airport connection. I have my old Powerbook with 10.4.11, it's connected to the same router with the same settings and the same time upload speed remains stable about 300 kb/sec.
    But when I transfer files from my Macbook to my old Powerbook via ftp everything is fine. And when I transfer files to ftp server of my local ISP it's also fine.
    Please, help me, I have to upload big 100 Mb files very often and it's significant difference for me 30 or 300 kb/sec
    Boris

    I'm afraid it's not just the Duck or FTP, Boris....It's many many Apps...and protocols... 10.5 appears to have ;broken',a number of file transfer protocols and Apps... (Wired and KDX are two that come to mind- precisely the same symptoms, AND some others) Apple's own 'built-in' FTP appears OK Mac-Mac, oddly enough.
    There's obviously some kind of weird Copy-Paste problem too.
    It's obviously 'fixable' or a workaround is available because several s/w mobs have released 'fixes for 10.5 file transfer Bug'
    The rest of us will just have to wait while another unannounced,unacknowledged, gaping hole in the Mac OS is quietly fixed and our expensive s/w sits unusable...
    Not really good enough, is it ?
    Like: Not being able to automatically detect a part file transfer on FTP and Auto-resume from whence you left off: something we thought was pretty cool- back in about 1984.... and absolutely essential in 86 or so.
    Boris:You will almost certainly find that it happens whatever the client-server server setup and applications or Medium... I've seen precisely what you describe happen with Airport, Cable, 10/100/1000' local' LAN...
    - and watching your throughput drop from 300K to 300 BYTES/Sec is NO FUN.
    I've spent a lot of time and money convincing potential 'Switchers' of the superiority of the Mac way over the last 20 years or so...
    I'm getting pretty tired at defending the indefensible: 'SkoolBoy Misstakes' in a 24 year old 'superior Computer.- Not Good enough, Apple.

  • Problems Uploading With Muse FTP And Publishing.

    Hi
    Please help if you can.
    I have finished creating my website and launched it onto Adobe businesscatlyst and it looks fine!
    http://magicorganic.businesscatalyst.com/
    There is a major problem loading up to my web host. IPage.
    Firstly i loaded it with the FTP feature in Muse and it stopped uploading at 61% and I got an error message concerning images.
    I then exported the files to My Docs. ( And noted there is no Home Page mentioned just Index) here:
    I then uploaded these manually to IPage: Here
    and viewed my site www.magicorganic.co.uk and its all over the place. I then tried to upload again using FTP with the files already on the host and it loaded 91% before and error message. See here:
    If anyone has any ideas of where to go with this please gt back to me.
    Many thanks

    They did reset permisssions etc. But by then I had already loaded up every file manually. There was a problem as the CSS files went into the root folder so were not working properly, this is now fixed.
    I want to make a few adjustments to the website copy. I have already done this on businesscatalyst, which was painless.
    To ensure that copy changes take place do i simply upload with the FTP, as I know the host system will overwrite existing files or is it more complicated? And do I upload all files or selected files?
    Please advise
    Many thanks
    James

  • Incredibly slow FTP upload speeds on Intel Macs with OS 10.5

    I've been using FTP programs like Fetch and Vicomsoft FTP for years and recently bought two new Intel iMacs to add to my office. I still have my older G5 iMacs as well. We have an extremely high speed business class broadband connection and on the older iMacs that are running 10.4.11, our FTP connection through Fetch and Vicomsoft with them is absolutely super-fast with upload speeds of close to 300 kb/sec.
    However, on the new iMacs, which are Intel Macs and run OS 10.5, the FTP upload connection is insanely slow, with upload connections of less than 30 kb/sec (yes, 10 times slower). It starts out fast at first (like all FTP connections) but then very rapidly slows to a maddening crawl of 30 kb/sec or less.
    Anyone have any idea what this might be attributed to? Or anyone out there have the same problem? We are having to transfer everything to our older iMacs in order to upload, which is another huge time waste.
    Any help is appreciated.
    BTW, on the new Intel Macs, we have tried using both Fetch 4.0.3 (which is the version we have on the older iMacs) as well as Fetch 5.3 and the same slowness problem exists for both.

    Firefox 3.6.x is the last available from Mozilla for PPC Macs. <br />
    http://www.mozilla.com/en-US/firefox/all-older.html
    For older Macs that aren't supported in Firefox 4+ versions, try TenFourFox for PowerPC's running Mac 10.4.11 & 10.5.8 . <br />
    http://www.floodgap.com/software/tenfourfox/<br />
    http://tenfourfox.blogspot.com/ <br />
    https://code.google.com/p/tenfourfox/wiki/PluginsNoLongerSupported

  • Big troubles with FTP upload since upgrade to leopard

    Hello out there,
    I made an upgrade from tiger to leopard 3 weeks ago (10.5.7) on my iMac (Intel - early 2006). Since this time I Have big troubles with ftp upload.
    I'm using Cyberduck as FTP client and it worked very well before but since the upgrade it starts quick and falls down to a view kb after a view seconds. Sometimes it stops completely.
    Target Server is checked and working well. Also the ISP is fine (tested with a windows machine).
    As it is important for my business (photographer) I would appreciate if somebody can give me a quick hint how to solve this problem.
    Thanks in advance

    I am also experiencing this problem, but only (so far) with one hosting company of the many I FTP into (web designer). The symptoms are exactly as reported above. Files initially start uploading fine, then slow to a crawl and stall. This is the same regardless of FTP software. Error reports say the server is not responding.
    This problem is the same using my daughter's computer (also running 10.5.7), but my son (being my son) hasn't updated his OS since 10.5.5 and I encounter NO problems whatsoever FTPing from his machine, nor from a PC.
    It's only the uploads that seem to cause a problem. Communicating with the server to download, rename, move or delete files presents no issues.
    (In trying to track down where the problem was, I also discovered that the traceroute command to any site on both 10.5.5 and 10.5.7 stalls at the modem, though pings work fine as does tracert from the PC.)

Maybe you are looking for

  • Complex If logic in BI Publisher report template

    Hi, We are working on a fresh BI Publisher 10.1.3.4.1 install and are setting up a custom template. We want to accomplish the following, but the template will not accept the logic. In the 'Reciever' field we want logic along the lines of: If ssType l

  • Recording keystrokes and mouse clicks?

    Greetings, I need to be able to make scripts/macros by recording keystrokes and mouse clicks with location. Is this possible with Automator? Does anyone know of a way program to do this? It seems so simple. Thanks

  • Is it possible to view information such as play count on Artist view in itunes 11?

    is it possible to view information such as play count on Artist view in itunes 11?

  • Using LIKE in decode finction

    Hi , I am using DECODE function in the following way. DECODE(E.ROLENAME like '%%_ADMIN', 'ADMIN','User') but the error is : Message=ORA-00907: missing right parenthesis can someone tell me what is wrong in that ? also here is my complete SQL. rgds, K

  • Best pratices to create reports under APPS?

    Hi, I need to spread a lot of Projects reports using XML publisher 5.6.2 under APPS.11i. I first run a Concurrent Program ('A') which calls a PL/sql procedure. This procedure loop for every project and calls each time a CP ('B') which create the fina