entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

La conexión se reinicia al intentar subir un archivo MDB con JSP

Buenos días comunidad.
El problema es que, al seleccionar un archivo con extensión MDB (de 150Mb), el navegador hace el intento de subir el archivo, pero éste reinicia la conexión con el servidor y en consecuencia no se puede completar la tarea.
Estoy usando Apache Tomcat 8.0 y NetBeans 8.0.2 para el desarrollo de este módudo.

ésta es la página principal:

<form action="AltaArchivo" method="post" enctype="multipart/form-data">
    <p>
        <center><input type="File" name="archivo" id="btnFile" title="Seleccione un archivo para comenzar"></center>
    </p><strong><center><div id="salida" style="color:red"></div></center></strong>
            <!--BARRA DE PROGRESO-->
        <p><center><progress id="barra" value="0" max="100"></progress></center></p>
        <!--BARRA DE PROGRESO-->     
    <p>      <br >
    </p>
  <p> </p><p> </p><p> </p>
  <p>Una vez que el archivo haya sido seleccionado, por favor, pulse el botón aceptar para que se dé inicio con el proceso de importación.</p>
  <p> </p>

  <center><input type="button" name="Submit" id="btnSubmit" value="Aceptar" title="Pulse Aceptar cuando haya seleccionado un archivo" onclick="comprueba_extension(this.form, this.form.archivo.value)"></center>

  </form>

Y éste es el Servlet que estoy usando para realizar la subida al Servidor.

package Contenedor;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;  
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.util.Date;
import java.util.LinkedList;
import java.util.Iterator;

@WebServlet("/AltaArchivo")//Nombre del Servlet
@MultipartConfig(fileSizeThreshold=1024*1024*50,    // 50 MB /*Tamaños máximos de entrada,y config de Multipart Form*/
                 maxFileSize=1024*1024*100,          // 100 MB
                 maxRequestSize=1024*1024*300)      // 300 MB
public class AltaArchivo extends HttpServlet {
/********************VARIABLES A USAR*****************************/  
    private static final long serialVersionUID = 205242440643911308L;     
    private static final String UPLOAD_DIR = "uploads";   
    XSSFRow masterrow;
    XSSFCell mastercell; 
    LinkedList<Object>lista=new LinkedList<Object>();//Clase LinkedList para quitar Array y manejar datoss

    @Override

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        PrintWriter out=response.getWriter();      

        /*Primero almaceno en ua variable la ruta Absoluta del proyecto(Path)*/
        String applicationPath = request.getServletContext().getRealPath("");

         String uploadFilePath=applicationPath+"\\RepositorioArchivo";//Hago una variable que cree un repositorio en la ruta(Path) 
        File fileSaveDir = new File(uploadFilePath);//Creamos un objeto de tipo File que define el path de subida de archivos
        if (!fileSaveDir.exists()) {//En caso de no existir
            fileSaveDir.mkdirs();//Se crea con el método mkDirs()
        }

        String fileName = null;//Esta variable recupera el nombre del archivo seleccionado
        for (Part part : request.getParts()) {//Se hace una iteración con un objeto de tipo Part que recupera cada fragmento del archivo seleccionado
            fileName = getFileName(part);//Para hacer el nombrado del archivo, se usa el Método getFileName(part)        
            part.write(uploadFilePath + File.separator + fileName);//Se reintegran los fragmentos del archivo con el nombre         

        }

    }

    private String getFileName(Part part) {//éste método permite recupera el nombre origial del archivo seleccionado en el formulario

        String contentDisp = part.getHeader("content-disposition");
        System.out.println("content-disposition header= "+contentDisp);
        String[] tokens = contentDisp.split(";");
        for (String token : tokens) {
            if (token.trim().startsWith("filename")) {
                return token.substring(token.indexOf("=") + 2, token.length()-1);               
            }
        }
        return "";
    }

¿Es posible que se deba a que el archivo a subir es demasiado pesado para el servidor?
¿Existe otra forma de subir archivos pesados sin que el Servidor se reinicie?

De antemano muchas gracias.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta