JS + javaファイルのダウンロード

JS要求:

// 下载图片
    関数oDownLoad(URL、ファイル名){
         VARの URL = '$ {pageContext.request.contextPath} /file/downFile.do?url=' +のURL + '&ファイル名=' + encodeURI(ファイル名)。
        window.location.href = URL; 
    }

 

Javaのバックエンド:

@RequestMapping(値= "/downFile.do"、メソッド= RequestMethod.GET)
     公共 ボイド downPicture(HttpServletRequestのリクエスト、HttpServletResponseの応答)がスロー例外{ 
        にInputStreamを = NULL ; 
        文字列のURL = request.getParameter( "URL" ); 
        文字列filename = request.getParameter( "ファイル名" )。
        // ファイル名= java.net.URLDecoder.decode(ファイル名、 "UTF-8"); 
        ファイル名= 新しい文字列(filename.getBytes( "GB2312")、 "ISO-8859-1" )。
        新しいURL(URL); 
            HttpURLConnectionのCONN = (HttpURLConnectionの)httpUrl.openConnection(); 
            conn.setRequestMethod( "GET" ); 
            conn.setConnectTimeout( 100000)。// 连接超时单位毫秒//
             conn.setReadTimeout(200000); // 读取超时单位毫秒 
            conn.setDoInput(真の); 
            conn.setDoOutput(真の); 
            conn.setUseCaches(); 
            conn.connect(); 
 = conn.getInputStream()。

            バイト [] BS = 新しいです バイト [1024 ];
            int型のlen = 0 ; 
            response.reset(); 

            response.setHeader(「プラグマ」、「キャッシュなし」)。
            response.setHeader( "のCache-Control"、 "キャッシュなし" )。

            response.setContentType(「アプリケーション/オクテットストリーム」)。
            response.setHeader( "コンテンツ配置"、 "添付ファイル;ファイル名=" + ファイル名)。

            ServletOutputStreamをアウト = response.getOutputStream()。
            一方、((LEN = in.read(BS))!= -1 ){ 
                out.write(BS、

            out.flush(); 
            // 关流
            out.close(); 
        } キャッチ(例外e){
             スロー 新しいのRuntimeException(URL + "を下载失败" ); 
        } 最後に{
             試みる{ 
                in.closeを(); 
            } キャッチ(例外e){ 
            } 
        } 
        
    }

 

おすすめ

転載: www.cnblogs.com/lovedaodao/p/11454293.html