Java - Subir archivos con file upload en https

 
Vista:

Subir archivos con file upload en https

Publicado por Luis (1 intervención) el 06/08/2020 00:02:19
Hola buenas tardes, al momento me encuentro desarrollando un JSP con su respectivo servlet, en el cual mediante un formulario envio al servlet información de mi Id así como un archivo para insertar en una base de datos, lo cual es funcional en local y en servidor Web, apenas se está implementando agregar los mismos proyectos a servidores con certificado SSL en el protocolo HTTPS, lo cual ya generó conflicto, sólo admite archivos iguales o menores a 15kb, ya probe estableciento el tamaño máximo para recibir e insertar el archivo pero con o sin esas reglas no se pueden subir archivos de mayor capacidad, saliendo el mensaje "Processing of multipart/form-data request failed. Stream ended unexpectedly", alguien podría orientarme y dar alguna solución a lo anteriormente mencionado.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<form data-toggle="validator" role="form" action="UploadFile" method="POST" enctype="multipart/form-data" class="center-block">
            <label for="txtnuevoArchivo" class="col-xs-12 control-label center-block">Cargar Archivo de: <%=Nombre_Completo%></label>
            <div class="col-xs-3 form-group">
                 <input type="hidden" id="idHistorico" name="idEmpleadoPK" value="<%=IdEmpleado%>">
                <input id="txtnuevoArchivo" name="txtnuevoArchivo" type="file" accept=".txt,application/pdf,
                                                   application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
                                                   application/vnd.ms-excel,
                                                   application/vnd.openxmlformats-officedocument.wordprocessingml.document,
                                                   application/msword" class="form-control input-sm center-block" autofocus placeholder="Agregar Archivo PDF" required >
<button type="submit" onclick="this.disabled = true;
                        this.value = 'Enviando...';
                        this.form.submit();" class="btn btn-info">Agregar Archivo</button>
</form>

este es mi form en el jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
try {
    // Apache Commons-Fileupload
    DiskFileItemFactory factory = new DiskFileItemFactory();
     factory.setSizeThreshold(1024*1024*20*10);
    ServletFileUpload sfu  = new ServletFileUpload(factory);
    sfu.setFileSizeMax(1024*1024*25*10);
    sfu.setSizeMax(1024*1024*5*50);
 
    if (! ServletFileUpload.isMultipartContent(request)) {
        System.out.println("No hay archivo para subir a la base de datos");
        return;
 
    }
     // datos obtenidos del post y darles el parse
    List items = sfu.parseRequest(request);
    FileItem  id = (FileItem) items.get(0);
    String Id_Empleado_pk =  id.getString();
 
    // datos para subir los archivos a la base de datos
    FileItem file = (FileItem) items.get(1);
  String  FileExtension=file.getName().substring(file.getName().lastIndexOf("."));
  boolean fileAllowed = FileExtension.equalsIgnoreCase(".txt")
                            || FileExtension.equalsIgnoreCase(".pdf")
                            || FileExtension.equalsIgnoreCase(".doc")
                            || FileExtension.equalsIgnoreCase(".docx")
                            || FileExtension.equalsIgnoreCase(".xls")
                            || FileExtension.equalsIgnoreCase(".xlsx");
 
     String Insertar="UPDATE TBL_CVS_SEMBLANZA SET NOMBRE_ARCHIVO = ?, EXT=?, ARCHIVO=? WHERE ID_SEMBLANZA_PK="+Id_Empleado_pk;
ConectaDB con= new ConectaDB();
PreparedStatement pst = con.ObtenerCNX().prepareStatement(Insertar);
 
 
if(file!= null && fileAllowed){
 
    try{
 
 
        pst.setString(1,file.getName());
        pst.setString(2,FileExtension);
        pst.setBinaryStream(3, file.getInputStream(), (int) file.getSize() );
 
        System.out.println("El nombre del archivo es: "+file.getName()+" la extension es: "+FileExtension+ " el id a insertar "+Id_Empleado_pk);
 
        pst.executeUpdate();
        con.ObtenerCNX().close();
         rd = getServletContext().getRequestDispatcher("/SemblanzasIFD.jsp");
rd.forward(request, response);
 
    }//try
    catch (Exception ex) {
                            out.print("No ha llenado los datos del registro."+ ex.getMessage());
                        }
 
}// if
 
}//Try
   catch(Exception ex) {
    out.println( "Error --> " + ex.getMessage());
}

este es mi código del servlet.


Espero puedan orientarme
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder