package com.softgraf.vendas.model.rede;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;

// Download de arquivo binário via FTP (File Transfer Protocol)
public class FtpDownload {

	private String urlOrigem = null;
	private String urlDestino = null; 
	
	// urlOrigem = "softgraf.com/teste_ftp/imagem.jpg"
	// urlDestino = "d:/pasta/imagem.jpg" 
	// usuario = "cursojava@softgraf.com"
	// senha = "cursojava"
	public FtpDownload(String urlOrigem, String urlDestino, String usuario, String senha){
		try {
			usuario = URLEncoder.encode(usuario, "UTF-8");
			senha = URLEncoder.encode(senha, "UTF-8");
			this.urlOrigem = String.format("ftp://%s:%s@%s", usuario, senha, urlOrigem);
			this.urlDestino = urlDestino;
			
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
	}
	
	public boolean iniciar(){
		try {
			URL url = new URL(urlOrigem);
			InputStream entrada = url.openStream();
			FileOutputStream saida = new FileOutputStream(urlDestino);
			int v;
			
			while ((v = entrada.read()) != -1){
				saida.write(v);
			}
			
			entrada.close();
			saida.close();
			
		} catch (MalformedURLException e) {
			e.printStackTrace();
			return false;
			
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
		
		return true;
	}
}
