Pessoal,
estou desenvolvendo uma aplicacao que roda normal na maquina local, mas quando envio para rodar na net, ele “se perde” no caminho que tem para mim dar download de um determinado arquivo e da o seguinte erro:
..
java.io.FileNotFoundException: /files/documento.pdf (No such file or directory)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(FileInputStream.java:106)
downloads.processa.doGet(processa.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
..
]
codigo:
..
<c:forEach var="row" items="${qry.rows}">
<tr>
<td><c:out value="${row.codigo}"/></td>
<td><c:out value="${row.produto}"/></td>
<td><c:out value="${row.relatorio}"/> </td>
<td><c:out value="${row.data}"/> </td>
<td>
<a href="<c:url value="envio?">
<c:param name="arquivo" value="${row.arquivo}"/>
<c:param name="pathname" value="${row.caminho}" />
</c:url>">
<img src="images/teste.jpg" /> </a>
</td>
<td>
</td>
</c:forEach>
..
Classe
...
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class processa extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String arquivo = request.getParameter("arquivo");
String pathname = request.getParameter("pathname");
ServletOutputStream out = response.getOutputStream();
File file = new File(pathname + arquivo);
FileInputStream in = new FileInputStream(file);
String mime = "application/octet-stream";
String testname = arquivo.toUpperCase();
if(testname.endsWith(".JPEG"))
mime = "image/jpeg";
else if(testname.endsWith(".JPG"))
mime = "image/jpg";
else if(testname.endsWith(".PDF"))
mime = "application/pdf";
else if(testname.endsWith(".PPT"))
mime = "application/ppt";
response.setContentType(mime);
response.addHeader("content-disposition",
"attachment; filename=" + arquivo);
response.setContentLength((int)file.length());
int octet;
while ((octet = in.read()) != -1)
out.write(octet);
in.close();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
...
O caminho dos arquivos estao gravados no meu banco e esta como /files/
Percebi que o problema é porque ele nao esta achando o diretorio ou o arquivo, mas esta tudo certinho com relacao a isso(como disse testei na maquina local) sendo assim na teoria, era só alterar o path, e foi isso que fiz.
Mas o erro continua…
Alguem tem alguma ideia?
valeu pessoal