Java vem com um conjunto integrado de ferramentas para lidar com conexões de rede e ambos os ler e gravar dados para um servidor, desde que você use protocolos padrão da Internet como HTTP e FTP. Em poucos passos, você pode criar uma aplicação rápida, com uma interface gráfica do usuário, que irá fazer upload de imagens para um servidor FTP existente.
Abra o seu editor de texto favorito do ambiente de desenvolvimento Java e cole o seguinte para ele:
importação java.awt.GridLayout;
importação java.awt.Label;
importação java.awt.event.ActionEvent;
importação java.awt.event.ActionListener;
importação java.io.BufferedOutputStream;
importação java.io.File;
importação java.io.FileInputStream;
importação java.net.URL;
importação java.net.URLConnection;
importar javax.swing. *;
classe pública UploadForm estende JFrame implementa ActionListener {
arquivo de imagem;
servidor JTextField = new JTextField ("");
JTextField username = new JTextField ("");
JTextField imagepath = new JTextField ("");
JButton imageBrowse = new JButton ("encontrar imagem");
password JPasswordField = new JPasswordField ("");
JButton uploadButton = new JButton ("Envio");
public void actionPerformed (ActionEvent ae) {
}
UploadForm pública () {
}
main (String [] args) public static void {
}
}
Esta simples importações classe esqueleto todas as classes que serão necessários a partir das bibliotecas Java padrão, define os três métodos que o aplicativo usará, e cria os elementos da interface do usuário necessários.
Cole o seguinte no "a Principal" Método:
JFrame f = new UploadForm ();
f.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
f.setVisible (true) -
programadores Java experientes irão reconhecer este como o método padrão que fornece a entrada em seu programa a partir do sistema operacional. Neste caso, ele faz muito pouco: ele cria a estrutura que mantém a interface gráfica do usuário, garante que o programa será encerrado quando o usuário fecha o quadro, e faz o quadro visível para o usuário.
Cole o seguinte no "UploadForm" construtor (o "UploadForm ()" Método):
imageBrowse.addActionListener (this);
uploadButton.addActionListener (this);
this.setSize (640,100);
this.setLayout (new GridLayout (0,2));
this.add (imagepath);
this.add (imageBrowse);
this.add (new Label ("Servidor"));
this.add (servidor);
this.add (new Label ("Nome de usuário"));
this.add (nome de usuário);
this.add (new Label ("Senha"));
this.add (password);
this.add (uploadButton) -
Isso configura o visual da interface gráfica do usuário usando o "GridLayout" Gerente. Em primeiro lugar, os dois botões na interface do usuário é dito para enviar eventos de ação para este programa de "ação executada" Método. Em seguida, o gerente GridLayout é configurado para organizar os elementos de interface do usuário em uma grade com duas colunas e um número ilimitado de linhas. E, finalmente, todos os elementos da interface do usuário são adicionados. A ordem importa: o GridLayout começa na posição da grelha superior mais à esquerda e enche toda a linha antes de descer para a próxima linha.
Cole o seguinte no "ação executada" Método:
if (ae.getSource (). equals (imageBrowse)) {
Cordas;
JFileChooser jfc = new JFileChooser ();
jfc.showDialog (jfc, "Escolha um arquivo de imagem");
s = jfc.getSelectedFile () getAbsolutePath ().;
imagePath.setText (s);
} outro
if (ae.getSource (). equals (uploadButton)) {
experimentar {
Arquivo f = new File (imagePath.getText ());
Cordas urlString = "ftp: //" Username.getText + () + ":" Password.getText + () + "@" Server.getText + () + "/" F.getName + ();
URL url = new URL (urlString);
conexão URLConnection = url.openConnection ();
connection.setDoOutput (true);
BufferedOutputStream out = new BufferedOutputStream (connection.getOutputStream ());
FileInputStream in = new FileInputStream (f);
byte [] tampão = new byte [1024];
int i = 0;
while ((i = in.read (buffer)) gt; = 0) {
out.write (tampão, 0, i);
}
out.close ();
in.close ();
} Catch (Exception e) {
System.out.println (e.getMessage ());
}
}
Este método é um pouco complexo, porque o método actionPerformed tem que fazer duas coisas. Se o "imageBrowse" botão é clicado, ele deve apresentar aos usuários uma janela de seleção de arquivos para permitir que eles para selecionar um arquivo de imagem do seu disco rígido. E, por outro lado, se o "uploadButton" é clicado, ele deve abrir o arquivo selecionado com o navegador da imagem, abrir uma conexão FTP para um servidor (usando a classe URLConnection), e gravar os dados do arquivo para o servidor web.
dicas & avisos
- Este código é funcional, mas lotes de verificação de erros é deixado de fora, a fim de chegar à tarefa em mãos. nomes de arquivos sem sentido e nomes de servidor maus não são verificadas para.