Bom dia pessoal, estou tendo um problema com uma aplicação de cadastro em que tenho que fazer upload de foto.
Tá cadastrando e alterando perfeitamente, tá gravando o endereço que eu quero no banco, tudo beleza.
Porém, se eu restartar o servidor (tomcat 7) os arquivos que eu tinha feito upload antes simplesmente somem.
Alguém sabe o que pode estar acontecendo? É algo errado no meu código ou é alguma outra coisa em relação ao servidor de aplicação em si?
O código da minha servlet está logo abaixo.
ps: Sou inexperiente na área, essa aplicação faz parte justamente do meu projeto final para o meu curso na faculdade, qualquer ajuda ou melhora é bem vinda.
Agradeço desde já.
package br.com.tatico.view;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import br.com.tatico.model.*;
public class AreaAction extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String DESTINATION_DIR_PATH = "/images";
private File destinationDir;
public void init(ServletConfig config) throws ServletException {
super.init(config);
String realPath = getServletContext().getRealPath(DESTINATION_DIR_PATH);
destinationDir = new File(realPath);
if (!destinationDir.isDirectory()) {
throw new ServletException(DESTINATION_DIR_PATH + " is not a directory");
}
}
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
AreaDAO aDao = new AreaDAO();
SetorDAO sDao = new SetorDAO();
String action = req.getParameter("action");
String page = null;
boolean isMultiPart = ServletFileUpload.isMultipartContent(req);
if(isMultiPart){
Area area = new Area();
DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
fileItemFactory.setSizeThreshold(1 * 1024 * 1024); //1 MB
ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
try {
List items = uploadHandler.parseRequest(req);
Iterator itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
String field = item.getFieldName();
String value = item.getString();
if(field.equals("nomeArea"))
area.setNomeArea(value);
else if(field.equals("idSetor"))
area.setIdSetor(Integer.parseInt(value));
else if(field.equals("descArea"))
area.setDescArea(value);
else if(field.equals("status"))
area.setStatus(value);
else if(field.equals("action"))
action = value;
else if(field.equals("id"))
area.setIdArea(Integer.parseInt(value));
}else{
String nameFile = item.getName();
File file = new File(destinationDir, nameFile);
item.write(file);
area.setFotoArea("../images/"+item.getName());
}
}
if(action.equals("insert")){
aDao.Insert(area);
req.setAttribute("areas", aDao.ReportActive());
page="../auth/home.jsp";
}else if(action.equals("saveUpdate")){
aDao.Update(area);
req.setAttribute("area", aDao.SearchId(area.getIdArea()));
page="../auth/showArea.jsp";
}
} catch (FileUploadException ex) {
ex.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
RequestDispatcher rd = req.getRequestDispatcher(page);
rd.forward(req, resp);
}
}

e funciona perfeitamente.