Subir un archivo a mi web intranet

Bueno la pregunta es la siguiente, que código JSP debo poner para subir un archivo por decir (.doc,.pdf,.xml ) mediante un formulario.
Es decir que el usuario pueda subir al servidor archivos pequeños como word o excel o pdfs mediante un formulario.
Como configuro la ruta donde se guaradaran los archivos, etc. Una explicación general de como puedo hacerlo.
De antemano gracias por tu tiempo^^.

1 respuesta

Respuesta
1
---------------
file_upload.html
----------------
Esto es un ejemplo de la página donde el usuario podrá subir el fichero
----------------

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>File Upload Example</title>
</head>
<body>
<h1>Welcome to our photo album.</h1>
<form action="file_upload.jsp" method="post" enctype="multipart/form-data">
<p><br/>
Choose a file to upload to the server:
<input name="myFile" type="file"/><br/>
On the server, save the file as: (Enter something here if you want the file to be saved in a different file name.)
<input name="filename" type="text"/>
</p>
<hr/>
<p>
<input type="submit"/>
<input type="reset"/>
</p>
</form>
</body>
</html>
---------------
file_upload.jsp
---------------
El jsp que se encargará de recibir y guardar el fichero subido en la página anterior
--------------

<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<%@ page import="org.apache.commons.fileupload.*, org.apache.commons.fileupload.servlet.ServletFileUpload, org.apache.commons.fileupload.disk.DiskFileItemFactory, org.apache.commons.io.FilenameUtils, java.util.*, java.io.File, java.lang.Exception" %>
<% response.setContentType("application/vnd.wap.xhtml+xml"); %>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>File Upload Example</title>
</head>
<body>
<h1>Data Received at the Server</h1>
<hr/>
<p>
<%
if (ServletFileUpload.isMultipartContent(request)){
ServletFileUpload servletFileUpload = new ServletFileUpload(new DiskFileItemFactory());
List fileItemsList = servletFileUpload.parseRequest(request);
String optionalFileName = "";
FileItem fileItem = null;
Iterator it = fileItemsList.iterator();
while (it.hasNext()){
FileItem fileItemTemp = (FileItem)it.next();
if (fileItemTemp.isFormField()){
%>
<b>Name-value Pair Info:</b><br/>
Field name: <%= fileItemTemp.getFieldName() %><br/>
Field value: <%= fileItemTemp.getString() %><br/><br/>
<%
if (fileItemTemp.getFieldName().equals("filename"))
optionalFileName = fileItemTemp.getString();
}
else
fileItem = fileItemTemp;
}
if (fileItem!=null){
String fileName = fileItem.getName();
%>
<b>Uploaded File Info:</b><br/>
Content type: <%= fileItem.getContentType() %><br/>
Field name: <%= fileItem.getFieldName() %><br/>
File name: <%= fileName %><br/>
File size: <%= fileItem.getSize() %><br/><br/>
<%
/* Save the uploaded file if its size is greater than 0. */
if (fileItem.getSize() > 0){
if (optionalFileName.trim().equals(""))
fileName = FilenameUtils.getName(fileName);
else
fileName = optionalFileName;
String dirName = "/file_uploads/";
File saveTo = new File(dirName + fileName);
try {
fileItem.write(saveTo);
%>
<b>The uploaded file has been saved successfully.</b>
<%
}
catch (Exception e){
%>
<b>An error occurred when we tried to save the uploaded file.</b>
<%
}
}
}
}
%>
</p>
</body>
</html>
He puesto en negrita las cosas importantes (como donde se elige el directorio destino)
Esto es un ejemplo para que tengas algo con qué empezar, intenta entenderlo antes de intentar usarlo. Hay muchas otras maneras (y librerías) para hacerlo, esta es una de ellas.
Hola gracias por responder, um he tratado de entenderlo entiendo algo no todo je je, um pero a la hora de aplicarlo me sale error y la causa parece que es el package org. Apache.commons.fileupload y el io, donde consigo estos packages
Disculpa las molestias; soy nuevo en esto le estoy agarrando ritmo pero hay cosas que aun no se.
Es normal no saber mucho al empezar. Aquí puedes encontrar las librerías de org. Apache.commons y en concreto fileupload e IO.
http://commons.apache.org/downloads/index.html
http://commons.apache.org/downloads/download_io.cgi
http://commons.apache.org/downloads/download_fileupload.cgi
Las librerías de apache (al igual que sus servidores) suelen ser muy buenas y están muy extendidas por toda la red, por lo que podrás encontrar mucha ayuda sobre su funcionamiento.
Recuerda cerrar la pregunta si todo va bie.
¿Hola ya instalae las librerías ya no me sale error pero al momento de subir un archivo
me sale el mensaje DEsea descargar archivo? Nombre: ¿file_upload.jsp
parece que intenta descargar el jsp pero no subir el archivo?
¿um qué parte me falto agregar? '
es difícil de saber sin más datos...
Es muy raro que te diga de descargar un archivo JSP, lo normal es que el explorador lo abra. Y eso depende de que tengas un servidor que sepa interpretar el jsp (habitualmente Tomcat). Tendrás que decirme exactamente qué estás usando para realizar la web. Es decir, qué servidor Web o de aplicaciones (Apache + Tomcat, solo Tomcat, IIS, etc...). En qué entorno estás programando (Eclipse, Netbeans, "Notepad"...). También vendría bien si me dices qué nivel de programación en web tienes, :P.
Hola, disculpa por no poner todos los datos
La aplicación esta desarrollada en Netbeans, que a la vez esta tiene integrado el apache tomcat, la aplicación trata de conectar web (con páginas jsp y unos cuantos clases de java para la conexión) con la base de datos que esta en mysql.
Bueno estoy intentando poner la opción de subir archivos al servidor.
Um y si soy relativamente nuevo en la programación, por no decir "Newbie" :D Y en todo expertos estoy aprendiendo mucho^^.
Volviendo al problema, si me ejecuta el file_upload.html y me sale esa página para subir el archivo, el problema es cuando elijo un archivo e intento subirlo al hacer click en el botón, me aparece ese mensaje para guardar el file_upload.jsp
un saludo :D.
Elimina esta linea que he visto en el JSP:
<% response.setContentType("application/vnd.wap.xhtml+xml"); %>
No me di cuenta de ella al pegarte el ejemplo. Eso parece que pone un formato al jsp que hace que el explorador no lo abra e intente descargarlo.
A ver si con eso se soluciona

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas