![]() |
problema con enctype="multipart/form-data" Hola de nuevo, otraves necesitando de su ayuda. tengo un form que manda los datos de un input type file que lo que hace es copiar una imagen y guardarla en una dirección específica en cargaImagen <form action="CargaImagen.jsp" enctype="multipart/form-data" method="post"> <input type="file"> </form> pero como tiene ese tipo de encriptación no puedo mandar un atributo normal por ejemplo si ponto un input type="text" dentro del form de arriba . en la pagina CargaImagen no me lo reconoce me lo manda null y en cambio si le quito el tipo de encriptado ya me lo manda pero el contenido del input type file NO. como le hago gracias de antemano |
respuesta despues de buscar y buecar por fin lo encontre y se los comparto por si alguien tienen el mismo problema <%@ page language="java" contentType="text/html;charset=UTF-8"%> <%@ taglib uri="netui-tags-databinding.tld" prefix="netui-data"%> <%@ taglib uri="netui-tags-html.tld" prefix="netui"%> <%@ taglib uri="netui-tags-template.tld" prefix="netui-template"%> <%@ page import="org.apache.commons.fileupload.*"%> <% String nombreI2=String.valueOf(request.getParameter("imag enesFILE")).toString(); String nombreI3=String.valueOf(request.getAttribute("txtI ")).toString(); String fileName=""; String stitle=""; String nom2=""; boolean bOk = true; try { // construimos el objeto que es capaz de parsear la perición DiskFileUpload fu = new DiskFileUpload(); // maximo numero de bytes fu.setSizeMax(1024*1024); // 512 K // tamaño por encima del cual los ficheros son escritos directamente en disco fu.setSizeThreshold(4096); // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria //fu.setRepositoryPath(request.getRealPath("/") +"files\\tmp"); // ordenamos procesar los ficheros List fileItems = fu.parseRequest(request); // Iteramos por cada fichero Iterator i = fileItems.iterator(); FileItem actual = null; while (i.hasNext()) { actual = (FileItem)i.next(); String a=actual.getFieldName(); if( a.equals("imagenesFILE") ) { fileName = actual.getName(); File fichero = new File(fileName); //fichero = new File( request.getRealPath("/") +"files\\IMG\\"+ fileName); //fichero = new File("c:/imagenes/"+stitle+".jpg"); fichero = new File("C:/imagenes/"+stitle+".jpg"); // escribimos el fichero colgando del nuevo path actual.write(fichero); request.setAttribute("imagen","si");%> <jsp:forward page="Alta.jsp"/> <%} else if( actual.getFieldName().equals("txtI") ) stitle = actual.getString(); } } catch(Exception e) { bOk = false; System.out.println("Error de Aplicación " + e.getMessage()); out.println("<IMG_MSG code='ERROR'>"+ e.getMessage()+"</IMG_MSG>"); } %> <netui:html> <head> <title> Web Application Page </title> </head> <body> <p> New Web Application Page </p> </body> </netui:html> hace un barrido de toods los elemenos del formulario y de cada uno sale su propiedad name recuerden que al evaluar cada elemento se evaluan de izq a deracha si lo ocupan y tienen dudas comentenme |
Respuesta: problema con enctype="multipart/form-data" hola tengo el mismo problema ejecute el codigo q tienes y me guarda el archivo no trae el nombre del usuario q es lo q necesito String nombreI3 = String.valueOf(request.getAttribute("use")).toStri ng(); arroja un valor nulo, esto es lo q guarda en la carpeta especificada .jpg por favor me podrias explicar como corregir esta situacion gracias de antemano |
Respuesta: problema con enctype="multipart/form-data" por copiar y pegar sin analizar no encontraba la parte que hace parte de tu codigo anexo codigo completo por si alguien lo necesita <%@page import="java.io.File"%> <%@page import="java.util.List"%> <%@ page import = "java.*"%> <%@ page import="org.apache.commons.fileupload.*"%> <%@ page import = "javax.servlet.*"%> <%@ page import = "javax.servlet.http.*"%> <%@ page import = "org.apache.commons.fileupload.*"%> <%@ page import= "java.util.*"%> <% String usu = request.getParameter("usuario"); String usuario2 = (String) session.getAttribute("use"); String nombreI3 = String.valueOf(request.getAttribute("use")).toStri ng(); String nombreI2 = String.valueOf(request.getParameter("fichero")).to String(); String fileName=""; String stitle=""; String nom2=""; boolean bOk = true; try { // construimos el objeto que es capaz de parsear la perición DiskFileUpload fu = new DiskFileUpload(); // maximo numero de bytes fu.setSizeMax(1024*1024); // 512 K // tamaño por encima del cual los ficheros son escritos directamente en disco fu.setSizeThreshold(4096); // directorio en el que se escribirán los ficheros con tamaño superior al soportado en memoria //fu.setRepositoryPath(request.getRealPath("/") +"files\\tmp"); // ordenamos procesar los ficheros List fileItems = fu.parseRequest(request); // Iteramos por cada fichero Iterator i = fileItems.iterator(); FileItem actual = null; while (i.hasNext()) { actual = (FileItem)i.next(); String a=actual.getFieldName(); if( a.equals("fichero") ) { fileName = actual.getName(); File fichero = new File(fileName); //fichero = new File( request.getRealPath("/") +"files\\IMG\\"+ fileName); stitle = usuario2;:risa: //fichero = new File("c:/imagenes/"+stitle+".jpg"); fichero = new File("C:/subidos/"+stitle+".jpg"); // escribimos el fichero colgando del nuevo path actual.write(fichero); request.setAttribute("imagen","si");%> <jsp:forward page="Menuuser.jsp"/> <%} else if( actual.getFieldName().equals("usuario") ) stitle = actual.getString(); } } catch(Exception e) { bOk = false; System.out.println("Error de Aplicación " + e.getMessage()); out.println("<IMG_MSG code='ERROR'>"+ e.getMessage()+"</IMG_MSG>"); } %> <netui:html> <head> <title> Web Application Page </title> </head> <body> <p> New Web Application Page </p> </body> </html> |
| La zona horaria es GMT -6. Ahora son las 00:31. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.