Loading ...
Sorry, an error occurred while loading the content.
 

Apache Commons, FTPClient, Imagem

Expand Messages
  • Adriano 'Stanley'
    Bom dia a todos! Preciso criar um mini-client de FTP que lê uma imagem de um diretório local e envia para um servidor de FTP utilizando o Apache Commons.
    Message 1 of 5 , Jun 29, 2010
      Bom dia a todos!

      Preciso criar um mini-client de FTP que lê uma imagem de um diretório local e envia para um servidor de FTP utilizando o Apache Commons.

      Crio esse mini-client e faço o upload da seguinte maneira:

      FTPClient client = new FTPClient();
      FileInputStream fis = null;
      client.connect("...");
      client.login("...", "...");
      client.storeFile("/", input);
      client.logout();

      Quando o input é do tipo .txt faço o upload com sucesso e o arquivo lá no servidor vai completo. Porém, quando é do tipo imagem ele vai mas quando tento recuperá-lo vem uma imagem totalmente borrada (com as mesmas dimensões da original) e irreconhecível.

      Não sei se estou novateando muito mas é assim mesmo que se lê um arquivo de imagem?

      FileInputStream input = null;

      try {
          input = new FileInputStream("C:\\16500869-_4a569364-full.jpg");
          //...
      } ...

      Se eu estiver lendo o arquivo corretamente (e acho que estou pois quando pego seus bytes e jogo para um output ele grava o arquivo no disco e a imagem fica exatamente a mesma) imagino que o problema está no upload. Se alguém souber o que pode estar acontecendo se possível me ajude. =)

      Muito obrigado, pessoal!

      Adriano Castro
      http://www.enigmapremiado.com.br
    • Sigmar Siqueira
      Parece ter a ver com o protocolo ftp nele, se você for transferir um arquivo binário ( no caso a foto), então você tem que avisar que vai fazer isso
      Message 2 of 5 , Jun 29, 2010
        Parece ter a ver com o protocolo ftp

        nele, se você for transferir um arquivo binário ( no caso a foto), então você tem que "avisar" que vai fazer isso setando o tipo do arquivo que vai transferir. Senão ele acha que é texto e altera o conteudo do arquivo.

        no FTPClient veja o método:

        setFileType

        o default é tipo texto, então tem que mudar pra binário antes de transferir

        o codigo ficaria assim:

        FTPClient client = new FTPClient();
        FileInputStream fis = null;
        client.connect("...");
        client.login("...", "...");

        client.setFileType( FTP.BINARY_FILE_TYPE); //setq pra transfrencia de binário

        client.storeFile("/", input);


        client.setFileType( FTP.ASCII_FILE_TYPE); // se quiser voltar pro texto

        client.logout();



        ve se isso ajuda

        valeu,

        Sigmar

        Em 29 de junho de 2010 09:18, Adriano 'Stanley' <adrianostanley@...> escreveu:
         

        Bom dia a todos!

        Preciso criar um mini-client de FTP que lê uma imagem de um diretório local e envia para um servidor de FTP utilizando o Apache Commons.

        Crio esse mini-client e faço o upload da seguinte maneira:

        FTPClient client = new FTPClient();
        FileInputStream fis = null;
        client.connect("...");
        client.login("...", "...");
        client.storeFile("/", input);
        client.logout();

        Quando o input é do tipo .txt faço o upload com sucesso e o arquivo lá no servidor vai completo. Porém, quando é do tipo imagem ele vai mas quando tento recuperá-lo vem uma imagem totalmente borrada (com as mesmas dimensões da original) e irreconhecível.

        Não sei se estou novateando muito mas é assim mesmo que se lê um arquivo de imagem?

        FileInputStream input = null;

        try {
            input = new FileInputStream("C:\\16500869-_4a569364-full.jpg");
            //...
        } ...

        Se eu estiver lendo o arquivo corretamente (e acho que estou pois quando pego seus bytes e jogo para um output ele grava o arquivo no disco e a imagem fica exatamente a mesma) imagino que o problema está no upload. Se alguém souber o que pode estar acontecendo se possível me ajude. =)

        Muito obrigado, pessoal!

        Adriano Castro
        http://www.enigmapremiado.com.br




        --
        Sigmar Siqueira

      • Javier Far Coll
        Bom dia Adriano, Usando o Commons FTP você deve explicitar que a transferência do JPEG será em modo binário:
        Message 3 of 5 , Jun 29, 2010
          Bom dia Adriano,

          Usando o Commons FTP você deve explicitar que a transferência do JPEG será em modo binário:


          Um abraço,
          Javier Far

          Em 29 de junho de 2010 09:18, Adriano 'Stanley' <adrianostanley@...> escreveu:


          Bom dia a todos!

          Preciso criar um mini-client de FTP que lê uma imagem de um diretório local e envia para um servidor de FTP utilizando o Apache Commons.

          Crio esse mini-client e faço o upload da seguinte maneira:

          FTPClient client = new FTPClient();
          FileInputStream fis = null;
          client.connect("...");
          client.login("...", "...");
          client.storeFile("/", input);
          client.logout();

          Quando o input é do tipo .txt faço o upload com sucesso e o arquivo lá no servidor vai completo. Porém, quando é do tipo imagem ele vai mas quando tento recuperá-lo vem uma imagem totalmente borrada (com as mesmas dimensões da original) e irreconhecível.

          Não sei se estou novateando muito mas é assim mesmo que se lê um arquivo de imagem?

          FileInputStream input = null;

          try {
              input = new FileInputStream("C:\\16500869-_4a569364-full.jpg");
              //...
          } ...

          Se eu estiver lendo o arquivo corretamente (e acho que estou pois quando pego seus bytes e jogo para um output ele grava o arquivo no disco e a imagem fica exatamente a mesma) imagino que o problema está no upload. Se alguém souber o que pode estar acontecendo se possível me ajude. =)

          Muito obrigado, pessoal!

          Adriano Castro
          http://www.enigmapremiado.com.br



        • Adriano 'Stanley'
          Valeu Javier!! Funcionou agora! Muito obrigado! Adriano Castro http://www.enigmapremiado.com.br
          Message 4 of 5 , Jun 29, 2010
            Valeu Javier!! Funcionou agora!

            Muito obrigado!

            Adriano Castro
            http://www.enigmapremiado.com.br
          • Adriano 'Stanley'
            Beleza Sigmar! Resolveu sim. =) Obrigado! Adriano Castro http://www.enigmapremiado.com.br 2010/6/29 Sigmar Siqueira ... Beleza
            Message 5 of 5 , Jun 29, 2010
              Beleza Sigmar! Resolveu sim. =)

              Obrigado!

              Adriano Castro
              http://www.enigmapremiado.com.br


              2010/6/29 Sigmar Siqueira <sigmar.siqueira@...>
               

              Parece ter a ver com o protocolo ftp

              nele, se você for transferir um arquivo binário ( no caso a foto), então você tem que "avisar" que vai fazer isso setando o tipo do arquivo que vai transferir. Senão ele acha que é texto e altera o conteudo do arquivo.

              no FTPClient veja o método:

              setFileType

              o default é tipo texto, então tem que mudar pra binário antes de transferir

              o codigo ficaria assim:



              FTPClient client = new FTPClient();
              FileInputStream fis = null;
              client.connect("...");
              client.login("...", "...");

              client.setFileType( FTP.BINARY_FILE_TYPE); //setq pra transfrencia de binário

              client.storeFile("/", input);


              client.setFileType( FTP.ASCII_FILE_TYPE); // se quiser voltar pro texto

              client.logout();



              ve se isso ajuda

              valeu,

              Sigmar

              Em 29 de junho de 2010 09:18, Adriano 'Stanley' <adrianostanley@...> escreveu:
               

              Bom dia a todos!



              Preciso criar um mini-client de FTP que lê uma imagem de um diretório local e envia para um servidor de FTP utilizando o Apache Commons.

              Crio esse mini-client e faço o upload da seguinte maneira:

              FTPClient client = new FTPClient();
              FileInputStream fis = null;
              client.connect("...");
              client.login("...", "...");
              client.storeFile("/", input);
              client.logout();

              Quando o input é do tipo .txt faço o upload com sucesso e o arquivo lá no servidor vai completo. Porém, quando é do tipo imagem ele vai mas quando tento recuperá-lo vem uma imagem totalmente borrada (com as mesmas dimensões da original) e irreconhecível.

              Não sei se estou novateando muito mas é assim mesmo que se lê um arquivo de imagem?

              FileInputStream input = null;

              try {
                  input = new FileInputStream("C:\\16500869-_4a569364-full.jpg");
                  //...
              } ...

              Se eu estiver lendo o arquivo corretamente (e acho que estou pois quando pego seus bytes e jogo para um output ele grava o arquivo no disco e a imagem fica exatamente a mesma) imagino que o problema está no upload. Se alguém souber o que pode estar acontecendo se possível me ajude. =)

              Muito obrigado, pessoal!

              Adriano Castro
              http://www.enigmapremiado.com.br



              --
              Sigmar Siqueira


            Your message has been successfully submitted and would be delivered to recipients shortly.