to tentando a seculos fazer um upload de imagem e nao consigo.
meu jsp ta assim…
<%@page language="java" import="org.apache.commons.fileupload.*, java.util.*, java.io.*" %>
<%
String codigo=request.getParameter("codigo");
String caminhoTemp = "c:\\logos\\temp\\";
String pasta = "c:\\logos\\final\\";
if (FileUpload.isMultipartContent(request)) {
DiskFileUpload upload = new DiskFileUpload();
upload.setRepositoryPath(caminhoTemp);
try {
List items = upload.parseRequest(request);
Iterator iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
//String nome = item.getName().toString();
String nome = codigo+".jpg";
String nomeArquivo = nome.substring(nome.lastIndexOf("\\") + 1);
out.write("nome do arquivo: " + nomeArquivo + "<br>");
out.write("Arquivo(s)<b> " + item.getName() + "</b> transferido(s)<br>");
File arquivo = new File(pasta + nomeArquivo);
item.write(arquivo);
out.write("Clique <a href=/upload/" + nomeArquivo + ">Aqui</a>. Para ver o resultado do upload");
}
}
} catch (FileUploadException e) {
out.write("Não foi possível efetivar o upload do arquivo - segue a causa do erro" + "<br>" + e.getMessage());
e.printStackTrace();
}
}
%>
Nisso ele faz o upload CERTINHO!!
mas, quando mudo a pasta para uma da aplicacao, (ex: “…/imagens/”) ele da erro, dizendo que nao pode encontrar o diretorio.
alguem ai pode me dar uma ajuda?
ou alguem conhece uma maneira melhor???
Você está utilizando um caminho relativo, ele vai tentar aquele caminho em função do diretório corrente que é do servidor web e não sua aplicação.
Tente criar um new File(".") e exibir o absolutePath para você saber em qual diretorio você se encontra trabalhando ai você verá o porque do erro.
FileInputStream input = new FileInputStream("ARQUIVO A SER LIDO DO SERVER");
byte[] buffer = new byte[1024]; // le o arquivo a cada 1kb
ServletOutputStream out = response.getOutputStream();
int read = 0;
while((read = input.read(buffer)) != -1){
out.write(buffer);
out.flush();
}
out.close();
} [/code]