Download de imagens da internet

3 respostas
Flavio_machine

Bom dia,

Estou precisando fazer um aplicativo que baixe imagens da net, e salve elas em um servidor, que vai ser
acessado por uma cliente para visualizar essas imagens. Estou meio perdido qual classe eu uso, alguém tem
um exemplo.
Abração.

3 Respostas

eliangela

Acessa ae:
http://www.java-tips.org/java-se-tips/javax.swing/how-to-create-a-download-manager-in-java.html

Flavio_machine

Muito obrigado Eliangela. Vc ja usou ? Ele vao gerenciar o download de arquivos via ftp. No código parece
que não indica onde os arquivos vão ser salvos.

eliangela
Flavio machine:
Muito obrigado Eliangela. Vc ja usou ? Ele vao gerenciar o download de arquivos via ftp. No código parece que não indica onde os arquivos vão ser salvos.

Já usei e funciona bem.

O download é salvo no mesmo diretório que está o gerenciador de downloads.
Vc pode alterar o local alterando uma parte da classe Download.java

public void run() {
        RandomAccessFile file = null;
        InputStream stream = null;
        
        try {
            HttpURLConnection connection =
                    (HttpURLConnection) url.openConnection();
            
            connection.setRequestProperty("Range",
                    "bytes=" + downloaded + "-");
            
            connection.connect();
            
            if (connection.getResponseCode() / 100 != 2) {
                error();
            }
            
            int contentLength = connection.getContentLength();
            if (contentLength < 1) {
                error();
            }
            
            if (size == -1) {
                size = contentLength;
                stateChanged();
            }
            
            file = new RandomAccessFile(getFileName(url), "rw"); 
// AQUI vc pode concatenar o seu diretório com o método getFileName(url)
//Ex.: file = new RandomAccessFile("c:\\download\\ + "getFileName(url), "rw");
            file.seek(downloaded);
            
            stream = connection.getInputStream();
            while (status == DOWNLOADING) {
                byte buffer[];
                if (size - downloaded > MAX_BUFFER_SIZE) {
                    buffer = new byte[MAX_BUFFER_SIZE];
                } else {
                    buffer = new byte[size - downloaded];
                }
                
                int read = stream.read(buffer);
                if (read == -1)
                    break;
                
                file.write(buffer, 0, read);
                downloaded += read;
                stateChanged();
            }
            
            if (status == DOWNLOADING) {
                status = COMPLETE;
                stateChanged();
            }
        } catch (Exception e) {
            error();
        } finally {
            if (file != null) {
                try {
                    file.close();
                } catch (Exception e) {}
            }
            
            if (stream != null) {
                try {
                    stream.close();
                } catch (Exception e) {}
            }
        }
    }
Criado 5 de junho de 2009
Ultima resposta 8 de jun. de 2009
Respostas 3
Participantes 2