FTP Uploads to Commercial Printer Site?

I'm building a website for a commercial printer. The printer
wants to allow clients to FTP files to him for printing. I'm trying
to decide on the best way to do this.
Some questions, thinking both about security and ease of use:
- Should clients upload to a "communal" FTP area?
- Could this be done without using a password?
- Or should clients have to register to create an individual
account? How would this be done?
Thanks for any ideas.

> Some questions, thinking both about security and ease of
use:
>
> - Should clients upload to a "communal" FTP area?
> - Could this be done without using a password?
> - Or should clients have to register to create an
individual account? How
> would this be done?
A common solution (from printers I've worked with) is to have
a 'drop box'
FTP site for incoming jobs. You should still set it up so
each person has an
account (a server admin would have to create those as
requested) and then
the rights would WRITE but not READ (so they could write to
the folder, but
not see everyone else's folder).
Another option would be to create unique accounts for each
client. Either
way, it really isn't a web developer's issue...but rather
whoever will end
up being the server administrator.
-Darrel

Similar Messages

  • My jpgs won't upload to photo printing sites

    I created a Christmas card design in Indesign (Just like I did last year with no problems) using CS6 and then exported as a jpg. I just tried to upload to a bunch of different photo printing sites and none of them will complete the upload. Some will upload, but the colors are all inverted so it's useless. I've never had this happen before. I can upload any other images and the cards I made last year, but for some reason not these ones. I know it's not a size issue because they're under 3 MB. Anybody have any ideas?

    Check the colour profile. Afaik, such printing sites usually expect RGB color. In case yours are CMYK, that'd explain the false depiction.
    They've written it in the FAQs.

  • PageMill3 wont do ftp upload or find printer using new extreme base station

    Hello,
    I am still trying to use Adobe PageMill 3.0 to upload to my website.
    It worked fine with the old dial up modem.
    But it won't upload now via the airport extreme & BTL cable.
    It does open the website folder but fails to establish a data connection.
    Also it doesn't find the printer attached to the base station.
    Any ideas please.
    Thank you.
    Regards,
    Ken..

    Glyn,
    Money!
    Thanks for the ideas. The 802.11b/g compatible setting was correct and I should have written that in my original post.
    The original channel was 11. I manually changed it to 6 and, lo and behold, the older MacBook could see the network.
    Thanks for the ideas and the help.
    Spongy II

  • Adobe Muse:  can it upload to an sftp site as well as an ftp site?

    I work at a college and normally I would just upload my web content onto a server.  However, from what I've read (and please correct me if I'm wrong) but everytime I'd make a change I'd have to export the whole site and upload it again.  So... I'm trying to work with our tech guys to have them fix it so that I can ftp everything up to the site which is supposed to allow me to just upload whatever has changed.  The question I'm getting from them is if Adobe Muse can upload to an sftp site.  (I have no idea what that is and can't seem to find the answer in the documentation).

    Hello,
    Adobe Muse currently does not support Upload to SFTP. It only supports FTP as of now.
    It has already been logged as a feature request by some on our users : http://forums.adobe.com/ideas/2554
    I would suggest you to add your valuable comments to the post.
    Regards,
    Sachin

  • The FTP server configured for this site doesn't seem to match the URL you entered. Make sure that you use the Upload to FTP Host feature in Muse to publish the site directly to the final location and that you are logging on to In-Browser Editing with the

    When i tried to login in inbrowserediting.adobe.com i see that:
    The FTP server configured for this site doesn't seem to match the URL you entered. Make sure that you use the Upload to FTP Host feature in Muse to publish the site directly to the final location and that you are logging on to In-Browser Editing with the same user.
    What does it mean? What is problem?

    Hi,
    I have just created my First website using Muse and Its all been uploaded to my FTP server but i cant access the in browser editing which was the whole reason why i re-done the website for my client using muse
    its saying the following
    "The FTP server configured for this site doesn't seem to match the URL you entered. Make sure that you use the Upload to FTP Host feature in Muse to publish the site directly to the final location and that you are logging on to In-Browser Editing with the same user. server configured for this site doesn't seem to match the URL you entered. Make sure that you use the Upload to FTP Host feature in Muse to publish the site directly to the final location and that you are logging on to In-Browser Editing with the same user."
    Yet i Can access my website fine "www.calmwood.com.au"
    My ftp server responds to either the IP Address or the DNS Address www.calmwood.com.au
    so i am not understanding how it thinks its different. when its fully referenced
    any help would be appreciated.
    thanks

  • 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

  • Color assistance needed for commercial printer

    Hi there,
    We're a board game publisher about to send our first game to an overseas manufacturer. The game is composed of hundreds of cards with detailed, fantasy art, and we're excited to get this game finally out the door.
    We sent the raw, packaged indesign (CS6) files to a local printer to see how everything would look before we have 3,000 copies of the game made overseas. The local printer used the same process that the overseas printer will, a 4 color high-end printer that is certainly impressive to people new to the industry such as ourselves. The sample cards they printed came out with fantastic clarity, but the colors are very muted. It's not a subtle change in color like I might see when toggling RGB to CMYK in photoshop for example. Instead, the colors on the print out look like someone slid a color saturation slider on the entire indesign file down by 25%.
    When we print on our low-end inket at the office, the resolution is obviously poor, but the colors look great and match our calibrated monitors. When we export to PDF using "Press Quality", everything looks perfect on multiple computers here and at other locations away from the office. It's only the most important step, printing on a full-blown, commercial printer that the colors look so muted.
    Here are some crude photos I took on my phone to help show the difference.
    These photos have our office, inkjet printer cards are more colorful and the high-quality commercial printer cards are muted (sorry for the strange alignment, this forum is rotating the images for some reason):
    http://www.watchtowergames.com/wp-content/uploads/2014/02/photo-1.jpg
    http://www.watchtowergames.com/wp-content/uploads/2014/02/photo-2.jpg
    http://www.watchtowergames.com/wp-content/uploads/2014/02/photo-3.jpg
    Different cards here:
    http://www.watchtowergames.com/wp-content/uploads/2014/02/photo-1b.jpg
    http://www.watchtowergames.com/wp-content/uploads/2014/02/photo-2b.jpg
    I've researched about swatches and color profiles, but all my experimenting hasn't produced any difference on my end. Therein lies the challenge, as I cannot duplicate the problem here at the office. The colors look great in indesign, great in exported PDFs, and great on our inkjet printed cards. Only when we pay a decent amount of money to the local commercial printer do we get these muted colors in our samples. And the local printer says their setup is exactly the same as our overseas manufacturer, which is terrifying. We've spent 17 months agonizing over all the details of the look of our cards for aesthetic purposes and game play so that players can quickly identify each card type by color. These muted colors will really mess the game up. We're pulling our hair out over here.
    The local printer has offered to provide a color correction service for us, but at $100 an hour, that sounds like a lot for a new business like ours.
    Is there some setting inside indesign that we are missing? Is there a way to replicate the muted colors on our end so we can at least troubleshoot this? Is there a method to turn up the saturation, if you will, for 4 color printing? Should we bite the bullet and pay the local printer an arm and a leg to color correct this? Any help would be greatly appreciated.
    Thank you,
    Tom
    P.S. Also, if it helps, when we had the local printer digitally print a sample, everything looked far too dark, which they said was a side effect of the digital print process.

    Thanks for the response, Rob.
    We talked with a local printer as they assured us that their setup was the same standard that the overseas printer uses. They said the sample sheet they printed for us had marks on the edges. Supposedly, once we had everything matching up right with the local printer, we could mail the printed sheet here to the overseas printer and their system would put in the sheet with its colors on the edges and know exactly what we wanted. Heck, if I know. I'm picking this up as I go along.
    By your post, it sounds like we have introduced an unnecessary variable (this local printer) and should just cut them out of the process and deal directly with the overseas printer. The challenge is that the next step is for them to make a sample game for us, and at $1,000 a sample game, it's going to get crazy expensive if we have to go through several samples. I'll see if they can just run a single sheet of cards as a test run like you suggested.
    If the overseas printer sheet or sample game comes up with the muted color problem still, what steps happen next. I ask because I'm used to solving the issues and don't understand how to solve this one if it comes up again. Do I just tell them to "make it more vibrant" and they work their magic as professional printers, or is the expectation that I'm to go through each of our many illustrations and graphic designs and over-saturate them myself? I suppose we can cross that bridge when we get to it. It's just hard to work for 18 months on this game getting everything just right and now see this color issue that is out my hands that I cannot solve.
    For color space, I think I understand you. Most of our art is RGB.Our Proof Setup is "CMYK - US SWOP v2".
    Thanks again for the information.
    Tom

  • I'm using a Mac. After swithcing to ICloud will I be able to use IWeb to upload and publish my sites hosted by other servers like Prohosting ?

    I'm using a Mac. After swithcing to ICloud will I be able to use IWeb to upload and publish my sites hosted by other servers like Prohosting ?

    iWeb has two other ways to publish your site...
    http://www.iwebformusicians.com/iWeb/Publish-Website.html
    ... and the second method allows you a choice of how you upload the files...
    http://www.iwebformusicians.com/iWeb/URLs-Favicons.html
    Here's a publishing workflow checklist...
    http://www.iwebformusicians.com/Search-Engine-Optimization/Website-Publishing-Wo rkflow.html
    The MobileMe only features can be replaced by alternatives...
    http://www.iwebformusicians.com/iWeb/Comments-Password-Protect.html
    If you have folders of assets outside of the main website folder on MobileMe, download them from the Apple server. From the Finder Go menu, follow the path iDisk/My iDisk/ to get there. Your website files are in the Web/Sites folder. Drag any files/folders onto the desktop.
    Use an FTP application to upload these assets to the root folder on your new server...
    http://www.iwebformusicians.com/Search-Engine-Optimization/Upload.html
    ...and change the relevant URLs to...
    http://www.domain-name.com/Folder-Name/file-name.file-extension
    There are lots of options for hosting for about half the cost of MobileMe...
    http://www.iwebformusicians.com/iWeb/Website-Hosting.html
    If you have been using a web.me.com domain name, you need to register a new one. Most hosting services give you at least one free and registering with your hosting company will make forwarding and managing it a lot easier.
    Make sure you add the new name to Google and create, upload and enter a new sitemap.xml...
    http://www.iwebformusicians.com/Search-Engine-Optimization/SEO.html
    If you have inbound links on other sites...
    http://www.iwebformusicians.com/Search-Engine-Optimization/Inbound-Link.html
    ... remember to inform the webmasters of you new URL.
    "I may receive some form of compensation, financial or otherwise, from my recommendation or link."

  • 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.

  • 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.

  • Smart FTP App for posting iWeb sites?

    I currently us Godaddy as my WPP. But as my iWeb website grows bigger with blogs & pics, etc. the "publish to folder" option with iWeb becomes more and more cumbersome. Transmit.app has a nice "sync" function that checks the dates of files, and only updates what needs updating. But each time I make changes in iWeb, and then publish to a folder, all of the files' dates are updated for the whole website, so Transmit.app just sees that the whole website is newer & needs posted, and is unable to determine which files were changed based on date alone.
    I can do the updating manually--only uploading the pages I know that I changed, but again, it becomes very cumbersome, not only because of iWeb's naming schemes, but also because iWeb seems to put some image files in non-intuitive folders/places, and I am having trouble making sure all of the changes get uploaded that are needed.
    Does any one know of an FTP program that can track actual changed files apart from the dates, and update only what has changed?

    Curtises4africa wrote:
    Why can't a polished program like Transit.app do this?
    In September 2007, the guys at Transmit said this:
    "Transmit is in the same boat as Fetch. There is currently no workaround for this, as +Transmit 3+ was only designed to consider dates when synchronizing, not size. +Transmit 4+ will be able to compare sizes."
    Curtises4africa wrote:
    Does any one know of an FTP program that can track actual changed files apart from the dates, and update only what has changed?
    +"Easy iWeb Publisher"+ significantly cuts down the time it takes to upload changed or updated sites by comparing the files on your computer with those on the web server. Click on the image:
    RBrowser also has Folder Syncronization:
    "RBrowser's sync engine will automatically find your changes and publish your new and changed files only to the remote server."
    ...But perhaps you would have to buy the licensed version to get that feature:
    "Absolutely unrestricted operations in all protocols (Local, FTP/SSL/TLS, SFTP-SSH), including Folder Sync."
    ...you could try the free version first and see if it has that feature.
    And here's a comprehensive list of Mac file transfer software:

  • FTP to my Ethernet Printer

    Hi,
    I have successfully connected to my Xerox printer using Ethernet. I want to upload a file to the printer using FTP, to update the printer's firmware. I can't do that, though I enter the TCP/IP address in the hostname using Fetch. Can't connect using a browser either. Any help on this would be very much appreciated.
    Patrick

    The obvious question is whether you've confirmed FTP is enabled or not.
    Only a few Xerox printers support the uploading of firmware via FTP, and IIRC it's disabled by default.
    You didn't say you've confirmed that, or whether you can connect from any other system in the network (e.g. whether the problem is with the printer or local to your machine).

  • Slideshow freezes on FTP upload

    Using Elements 7.0 on Windows XP Pro; my web host is LunarPages. Created a slideshow, am able to begin the ftp upload to my site, but everything freezes on the 20th slide (I have 26 slides in the show). I have deleted the show and re-created it 3 times...even tried rearranging the slides...but the same thing happens. Any thoughts as to what's going on?

    You don't need to worry about the file size in case of online album, the previous suggestion was for slide shows.
    To link the album to your site use the index.html file which you will find in the same location where the .swf and .xml files are created.
    With respect to the freezing of application during upload, I am guessing that there might be some problem with a file in the collection. Have you tried uploading a completely different set of 26 files? Does the problem persist?

  • Fired up my first Azure Website to host some virtual tours... ftp uploading and page loads super slow.

    I upgraded my plan to BASIC... any idea why FTP upload are so slow?  When I go to my pages, they are loading slowly too.

    Hi,
    First, please have a look at this article to see how to use FTP in azure:
    http://blogs.msdn.com/b/kaushal/archive/2014/08/02/microsoft-azure-web-site-connect-to-your-site-via-ftp-and-upload-download-files.aspx, based on your description, the pages loading slowly, this issue only occur in your first time to loading? If yes, I
    think it is normal, If you mean the initial request takes long and then any subsequent requests are fast, then that would be because you are hitting .NET apps cold start. Many .NET apps are slow to JIT and load all their .NET requirements, but once everything
    is loaded, they are fast. If I misunderstanding, please feel free to let me know.
    Best Regards,
    Jambor
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

Maybe you are looking for