Upload/Download de Imagem

Ola pessoal,

Venho pesquisando sobre o assunto, mas nao estou chegando a nada concreto.

Estou precisando fazer Upload de um avatar em meu formulario. Preciso armazenar isso no meu BD (SQL Server 2008) e futuramente, quando o usuario acessar uma certa pagina, eu carregar esta imagem.

Pelo que entendo a melhor forma, é gerar um vetor de bytes da Imagem e colocar num campo do BD.

Estou certo? Outra Pergunta: Alguem tem um exemplo do Upload e Download deste cenario, ou algo parecido, mas que armazene no banco?

Estou usando Apache Tomcat 6.0, com SQL Server 2008 e Eclipse como IDE.

É justamente o que eu estou tentando resolver, na parte de upload, mas não consigo gravar no banco…

Mas eu fiz diferente, segui esse exemplo nesse link

Aí tem que o caminho da imagem no banco, gerar um vetor de bytes não sei se resolveria…

espero ter ajudado
Abraço

Ah, só lembrando, estou usando NetBeans

ok falei com um cara que trabalha no serpro sobre isso mesmo
armazenagem de dados grandes em banco de dados e ele me passou isso
http://pgdocptbr.sourceforge.net/pg80/lo-funcs.html
já que o banco deve tratar os dados mas demora demais é Aconselhável por performance salvar no servidor

[quote=jaissonduarte]ok falei com um cara que trabalha no serpro sobre isso mesmo
armazenagem de dados grandes em banco de dados e ele me passou isso
http://pgdocptbr.sourceforge.net/pg80/lo-funcs.html
já que o banco deve tratar os dados mas demora demais é Aconselhável por performance salvar no servidor
[/quote]

Não entendi muito bem como funciona isso…
Acho também que não é bem aquilo que estou precisando

Mas de qualquer forma obrigado!

É para mim nao se aplica sua ideia Jaisson!

Ainda estou na procura de algo mais claro. Esta ideia usa Postgree. Eu estou usando SQL Server 2k8.

Thiago, eu sei como coloca no banco mas nao sei o processo como funciona, no java.

Cara eu ficaria com as ideias ai de cima:
1º Envia a imagem para o servidor onde sua aplicação esta rodando
2º Salva o caminho da imagem no banco de dados

Ai quando você for mostra a imagem é so vc colocar o caminho dela ao inves de pegar esse array de bytes e convertelo para uma imagem mesmo, eu fiz um esquema desse em um projeto e eu fazia/faço assim, o usuario seleciona uma imagem:
Detalhe, eu usei JSF + Primefaces

<h:form enctype="multipart/form-data" id="formEnvio">
			<p:fileUpload fileUploadListener="#{envioFtpBean.handleFileUpload}"
				mode="advanced" cancelLabel="Cancelar" uploadLabel="Enviar" label="Escolher"/>

		</h:form>

Isso vai mostrar na tela do usuario uma janela para escolher o arquivo, bem simples depois eu envio esse arquivo via ftp:

private String caminhoFtp = "pasta";
	private FTPClient ftp = new FTPClient();

	public void handleFileUpload(FileUploadEvent event) throws IOException {
		try {
                        //pego um InputStream do arquivo que foi "upado" para o server
			InputStream is = event.getFile().getInputstream();
			abrirConexao();
			ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
			ftp.storeFile(caminhoFtp + event.getFile().getFileName(), is);
			ftp.disconnect();
			FacesMessage msg = new FacesMessage("Enviado!", event.getFile()
					.getFileName() + " foi enviado.");
			FacesContext.getCurrentInstance().addMessage(null, msg);

                         //aqui vc poderia chamar o seu DAO algo assim
                         ArquivoDAO dao = new ArquivoDAO();
                         dao.salva(new Arquivo(event.getFile().getFileName()));   

                         //assim vc ja estaria salvando o arquivo no servidor

		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}

	}

	public void abrirConexao() {
		try {
			ftp.connect("oSeuFTP");
			if (FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
				ftp.login("User", "Password");
			} else {
				ftp.disconnect();
				FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_WARN, "Conexão recusada!", ""));
			}		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

Simples não?
espero ter ajudado
[]'s