subir ficheros (AYUDA POR DIOS)
ESTOY YA DESESPERADO
Tengo este servlet que utiliza la clase fileupload para subir ficheros al servidor pero.....cuando en la variable
ruta_servidor le pongo lo que hay da un error en el cual dice "(El sistema no puede hallar la ruta especificada)" .
¿COMO SE PONE LA RUTA DEL SERVIDOR DONDE ESTE LA CARPETA DESTINO????
¿¿¿¿ALGUIEN HA UTLIZADO ESTO ALGUNA VEZ????
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import java.util.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
/**
*
*
*/
public class uploadFichero extends HttpServlet {
//String ruta_servidor = "d:\ficherossubidos\";
String ruta_servidor = "\10.1.40.197\converter\"
String ruta_fallidos = "d:\temp\";
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet</title>");
out.println("</head>");
out.println("<body>");
System.out.println("Comenzamos procesamiento ficheros");
procesaFicheros(request,out);
out.println("</body>");
out.println("</html>");
out.close();
}
void depura(String cadena)
{
System.out.println("El error es " + cadena);
}
public boolean procesaFicheros(HttpServletRequest req, PrintWriter out ) {
try {
System.out.println("dentroooooo");
// construimos el objeto que es capaz de parsear la perición
DiskFileUpload fu = new DiskFileUpload();
System.out.println("dentroooooo2");
// maximo numero de bytes
fu.setSizeMax(1024*512); // 512 K
depura("Ponemos el tamaño máximo");
// tamaño por encima del cual los ficheros son escritos directamente en disco
fu.setSizeThreshold(4096);
depura("3");
// directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
//
fu.setRepositoryPath(ruta_fallidos);
// ordenamos procesar los ficheros
List fileItems = fu.parseRequest(req);
if(fileItems == null)
{
depura("La lista es nula");
return false;
}
out.print("<br>El número de ficheros subidos es: " + fileItems.size());
// Iteramos por cada fichero
Iterator i = fileItems.iterator();
FileItem actual = null;
depura("estamos en la iteración");
while (i.hasNext())
{
actual = (FileItem)i.next();
String fileName = actual.getName();
out.println("<br>Nos han subido el fichero" + fileName);
// construimos un objeto file para recuperar el trayecto completo
File fichero = new File(fileName);
depura("El nombre del fichero es " + fichero.getName());
// nos quedamos solo con el nombre y descartamos el path
//fichero = new File(ruta_servidor + fichero.getName());
//fichero = new File((File) this.getServletContext().getAttribute("\10.1.40.197\converter\")+ fichero.getName());
System.out.println("parametro ruta="+req.getParameter("ruta"));
fichero = new File(ruta_servidor+ fichero.getName());
// escribimos el fichero colgando del nuevo path
actual.write(fichero);
}
}
catch(Exception e) {
System.out.println("Errooooor de Aplicación " + e.getMessage());
return false;
}
return true;
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
Tengo este servlet que utiliza la clase fileupload para subir ficheros al servidor pero.....cuando en la variable
ruta_servidor le pongo lo que hay da un error en el cual dice "(El sistema no puede hallar la ruta especificada)" .
¿COMO SE PONE LA RUTA DEL SERVIDOR DONDE ESTE LA CARPETA DESTINO????
¿¿¿¿ALGUIEN HA UTLIZADO ESTO ALGUNA VEZ????
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.fileupload.*;
import java.util.*;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
/**
*
*
*/
public class uploadFichero extends HttpServlet {
//String ruta_servidor = "d:\ficherossubidos\";
String ruta_servidor = "\10.1.40.197\converter\"
String ruta_fallidos = "d:\temp\";
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet</title>");
out.println("</head>");
out.println("<body>");
System.out.println("Comenzamos procesamiento ficheros");
procesaFicheros(request,out);
out.println("</body>");
out.println("</html>");
out.close();
}
void depura(String cadena)
{
System.out.println("El error es " + cadena);
}
public boolean procesaFicheros(HttpServletRequest req, PrintWriter out ) {
try {
System.out.println("dentroooooo");
// construimos el objeto que es capaz de parsear la perición
DiskFileUpload fu = new DiskFileUpload();
System.out.println("dentroooooo2");
// maximo numero de bytes
fu.setSizeMax(1024*512); // 512 K
depura("Ponemos el tamaño máximo");
// tamaño por encima del cual los ficheros son escritos directamente en disco
fu.setSizeThreshold(4096);
depura("3");
// directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria
//
fu.setRepositoryPath(ruta_fallidos);
// ordenamos procesar los ficheros
List fileItems = fu.parseRequest(req);
if(fileItems == null)
{
depura("La lista es nula");
return false;
}
out.print("<br>El número de ficheros subidos es: " + fileItems.size());
// Iteramos por cada fichero
Iterator i = fileItems.iterator();
FileItem actual = null;
depura("estamos en la iteración");
while (i.hasNext())
{
actual = (FileItem)i.next();
String fileName = actual.getName();
out.println("<br>Nos han subido el fichero" + fileName);
// construimos un objeto file para recuperar el trayecto completo
File fichero = new File(fileName);
depura("El nombre del fichero es " + fichero.getName());
// nos quedamos solo con el nombre y descartamos el path
//fichero = new File(ruta_servidor + fichero.getName());
//fichero = new File((File) this.getServletContext().getAttribute("\10.1.40.197\converter\")+ fichero.getName());
System.out.println("parametro ruta="+req.getParameter("ruta"));
fichero = new File(ruta_servidor+ fichero.getName());
// escribimos el fichero colgando del nuevo path
actual.write(fichero);
}
}
catch(Exception e) {
System.out.println("Errooooor de Aplicación " + e.getMessage());
return false;
}
return true;
}
/** Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
Saludos.
Yo implemente algo parecido lo que te puedo comentar que lo implemente para qin y para linux
y lo que me di cuenta es que en win queria poner la ruta algo asi c:ruta, pero me di cuenta como es un servidor hay que poner las rutas como en unix, osea como /ruta y me funciono.
Yo implemente algo parecido lo que te puedo comentar que lo implemente para qin y para linux
y lo que me di cuenta es que en win queria poner la ruta algo asi c:ruta, pero me di cuenta como es un servidor hay que poner las rutas como en unix, osea como /ruta y me funciono.
Dependiendo de la version de java, tal vez no puedas acceder a recursos de red, necesita estar local en la maquina!!!!!
Cuando trabajaste con el "d:\ficherossubidos no te funciono????
Cuando trabajaste con el "d:\ficherossubidos no te funciono????