Tengo un formulario donde se sube una foto y se registra en una base de datos para mostrarlo mas tarde
Código:
String coo = hsr.getParameter("id"); HttpSession sesionD = hsr.getSession(false); int codig = (Integer)sesionD.getAttribute("codigo"); String lugar = "C:\\Users\\....\\Documents\\NetBeansProjects\\Social1\\web\\galerias\\"+codig; String nombre = null; DriverManagerDataSource dataSource; dataSource = (DriverManagerDataSource)this.getBean("dataSource",hsr.getServletContext()); this.cn = dataSource.getConnection(); DiskFileItemFactory factory = new DiskFileItemFactory(); factory.setSizeThreshold(1024); factory.setRepository(new File(lugar)); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> partes = upload.parseRequest(hsr); for(FileItem item : partes) { File file = new File( lugar, item.getName() ); item.write(file); nombre = file.getName(); } } catch(FileUploadException ex) { System.out.println(ex); } String rutaa="galerias/"+codig+"/"+nombre; PreparedStatement ps = cn.prepareStatement("insert into fotos (id_f,usuario_idf,ruta,fecha) values (S_fotos.nextval,?,?,sysdate)"); ps.setInt(1,codig); ps.setString(2,rutaa); ps.executeUpdate(); mv.addObject("galeria",galeria(codig)); public ArrayList <fotos> galeria(int codigo) throws Exception { ArrayList <fotos> galeria = new ArrayList(); PreparedStatement ps = cn.prepareStatement("select * from fotos where usuario_idf=? order by fecha"); ps.setInt(1,codigo); ResultSet rs = ps.executeQuery(); while(rs.next()) { fotos f = new fotos(); f.setIdf(rs.getInt(1)); f.setUsuario(rs.getInt(2)); f.setRuta(rs.getString(3)); f.setTitulo(rs.getString(4)); f.setFecha(rs.getString(5)); galeria.add(f); } return galeria; }
la subida la hace correctamente y la inserción en la base de datos tambien la hace bien, pero al volver a la pagina no muestra la imagen, sale el tipico icono de cuando no encuentra la foto, pero si sales y vuelves a entrar de la pagina la muestra
El caso es que al entrar a la pagina y al subir una foto y recuperar las fotografias usan la misma clase : public ArrayList <fotos> galeria(int codigo)
Si le doy a boton derecho copiar url y la pego en el navegador si la muestra