Java descarga archivos a través de la respuesta

Necesito prestar atención a dos lugares:

          1: Habrá códigos confusos en IE, por lo que debe usar la parte userAgent para tratar

          2: Después de ingresar el método, no se descargará y no hay respuesta. Mi situación es porque usé AJAX para enviar, así que tengo que resolver este problema.

                    1: Establecer parámetros AJAX

                    2: cambiar un método de solicitud en lugar de AJAX

public ActionForward creatCollectFileReport (mapeo ActionMapping,
            formulario ActionForm, solicitud HttpServletRequest,
            respuesta HttpServletResponse) lanza Exception {         String filePath = getMyParamPlus (solicitud, "filePath", "");         String userAgent = request.getHeader ("Usuario-Agente");         String fileName = "";         int start = filePath.lastIndexOf ("/");         if (start! = -1) {             fileName = filePath.substring (start + 1);         }         StringBuffer localStringBuffer = new StringBuffer (50);         FileInputStream localFileInputStream = nulo;         BufferedOutputStream localBufferedOutputStream = nulo;










        Archivo localFile1 = nuevo archivo (filePath);
        if ((localFile1! = null) && (localFile1.exists ())
                && (localFile1.isFile ())) {             long l = localFile1.length ();             intente {                 localFileInputStream = new FileInputStream (localFile1);                 respuesta.reset ();                 response.setContentType ("aplicación / secuencia de octetos");                 response.setContentLength ((int) l);                 // 针对 IE 或者 以 IE 为 内核 的 浏览 器 :                 if (userAgent.contains ("MSIE") || userAgent.contains ("Trident")) {                     fileName = java.net.URLEncoder.encode (fileName, "UTF- 8 ");










                    // 非 IE 浏览 器 的 处理 :
                    fileName = new String (fileName.getBytes ("UTF-8"), "ISO-8859-1");
                }
                response.setHeader ("Content-Disposition", "adjunto; filename =" + nueva cadena (fileName.getBytes ("utf-8"), "ISO-8859-1"));
                
                
                localBufferedOutputStream = nuevo BufferedOutputStream (response.getOutputStream ());
                intente {                     byte [] arrayOfByte1 = nuevo byte [2048];                     int i;                     while ((i = localFileInputStream.read (arrayOfByte1))> 0) {                         localBufferedOutputStream.write (arrayOfByte1, 0, i);                     }





                    localBufferedOutputStream.flush ();
                } catch (Exception localException2) {                 }                 localBufferedOutputStream.close ();                 localFileInputStream.close ();             } catch (Exception localException3) {



            }
        }
        try {             if (localBufferedOutputStream! = null) {                 localBufferedOutputStream.flush ();                 localBufferedOutputStream.close ();             }             if (localFileInputStream! = null) {                 localFileInputStream.close ();             }         } catch (Exception localException1) {         }         return null;     }










 

Supongo que te gusta

Origin blog.csdn.net/qq_20594019/article/details/102796775
Recomendado
Clasificación