
problema para subir imagen
Publicado por jose luis (2 intervenciones) el 08/03/2010 06:52:12
hola que tal amigos estoy trabajando con
apache-tomcat, he provado con las versiones 6 y 5
con las librerias commons-fileupload-1.2 y commons-io-1.3.2
lo que trato de hacer es copiar una imagen a una carpeta del servidor
lo que hago es copiar las librerias a la carpeta c:/tomcat/lib y
segun yo todo bien hasta hay, tengo mi aplicacion en la carpeta root del
servidor y tengo un formulario de tipo MULTIPART/FORM-DATA que manda un
campo de tipo file a una jsp con el codigo que aparece abajo, mi problema
es que apache-tomcat nunca me reconoce las clases contenidas en estas librerias y
por lo tanto no me permite copiar dicha imagen a una carpeta del servidor
y mi pregunta es ¿como devo de configurar apache-tomcat para que me detecte estas
librerias y el codigo de abajo pueda funcionar?.
<%@ page import="java.Util.*" %>
<%@ page import="org.apache.commons.Fileupload.*" %>
<%@ page import="org.apache.commons.Fileupload.Disk.*" %>
<%@ page import="org.apache.commons.Fileupload.Servlet.*" %>
<%@ page import="org.apache.commons.Io.*" %>
<%@ page import="java.Io.*" %>
<%
boolean isMultipart = ServletFileUpload.IsMultipartContent(request);
if(isMultipart){
int tamañoMaximoArchivo = 1024*1024*3; //valor en bytes --> (3MB)
String directorioDestino = "C:/imagen";
String nombreArchivo = "fotito.Jpg";
File uploadedFile = new File(directorioDestino,nombreArchivo);
DiskFileItemFactory diskFile = new DiskFileItemFactory();
diskFile.SetSizeThreshold(tamañoMaximoArchivo);
diskFile.SetRepository(uploadedFile);
FileItemFactory factory = diskFile;
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.ParseRequest(request); // Parse the request
if(items.Size()>0){
FileItem item = (FileItem) items.Get(0);
if (! Item.IsFormField()) {
//out. Print("<p> if de! Item.IsFormField()");
String fieldName = item.GetFieldName();
String fileName = item.GetName();
String contentType = item.GetContentType();
boolean isInMemory = item.IsInMemory();
long sizeInBytes = item.GetSize();
out.Print("<p> fieldName --> " + fieldName);
out.Print("<p> fileName --> " + fileName );
out.Print("<p> contentType --> " + contentType );
out.Print("<p> isInMemory --> " + isInMemory);
out.Print("<p> sizeInBytes --> " + sizeInBytes);
item.Write(uploadedFile);
out.Println("<p> Se subio en el directorio --> " + uploadedFile.GetPath() );
out.Println("<p> con el nombre --> " + uploadedFile.GetName() );
}
}
}
%>
apache-tomcat, he provado con las versiones 6 y 5
con las librerias commons-fileupload-1.2 y commons-io-1.3.2
lo que trato de hacer es copiar una imagen a una carpeta del servidor
lo que hago es copiar las librerias a la carpeta c:/tomcat/lib y
segun yo todo bien hasta hay, tengo mi aplicacion en la carpeta root del
servidor y tengo un formulario de tipo MULTIPART/FORM-DATA que manda un
campo de tipo file a una jsp con el codigo que aparece abajo, mi problema
es que apache-tomcat nunca me reconoce las clases contenidas en estas librerias y
por lo tanto no me permite copiar dicha imagen a una carpeta del servidor
y mi pregunta es ¿como devo de configurar apache-tomcat para que me detecte estas
librerias y el codigo de abajo pueda funcionar?.
<%@ page import="java.Util.*" %>
<%@ page import="org.apache.commons.Fileupload.*" %>
<%@ page import="org.apache.commons.Fileupload.Disk.*" %>
<%@ page import="org.apache.commons.Fileupload.Servlet.*" %>
<%@ page import="org.apache.commons.Io.*" %>
<%@ page import="java.Io.*" %>
<%
boolean isMultipart = ServletFileUpload.IsMultipartContent(request);
if(isMultipart){
int tamañoMaximoArchivo = 1024*1024*3; //valor en bytes --> (3MB)
String directorioDestino = "C:/imagen";
String nombreArchivo = "fotito.Jpg";
File uploadedFile = new File(directorioDestino,nombreArchivo);
DiskFileItemFactory diskFile = new DiskFileItemFactory();
diskFile.SetSizeThreshold(tamañoMaximoArchivo);
diskFile.SetRepository(uploadedFile);
FileItemFactory factory = diskFile;
ServletFileUpload upload = new ServletFileUpload(factory);
List items = upload.ParseRequest(request); // Parse the request
if(items.Size()>0){
FileItem item = (FileItem) items.Get(0);
if (! Item.IsFormField()) {
//out. Print("<p> if de! Item.IsFormField()");
String fieldName = item.GetFieldName();
String fileName = item.GetName();
String contentType = item.GetContentType();
boolean isInMemory = item.IsInMemory();
long sizeInBytes = item.GetSize();
out.Print("<p> fieldName --> " + fieldName);
out.Print("<p> fileName --> " + fileName );
out.Print("<p> contentType --> " + contentType );
out.Print("<p> isInMemory --> " + isInMemory);
out.Print("<p> sizeInBytes --> " + sizeInBytes);
item.Write(uploadedFile);
out.Println("<p> Se subio en el directorio --> " + uploadedFile.GetPath() );
out.Println("<p> con el nombre --> " + uploadedFile.GetName() );
}
}
}
%>
Valora esta pregunta


0