フロントセクション
//得到拼接字符串 機能getFJInfo(名前、URL){ リターン"<TR> <TDスタイル= ''> <A HREF = 'javascriptの:無効(0)' οnclick= 'getDownFile(\ "" + URL +" \」\ "" +名+ "\") '>」+名+ "</a>の</ TD> </ TR>" } //文件下载 機能getDownFile(URL、名前){ VAR PARAM = { "URL":URL }; $アヤックス({ URL:のcontextPath + '/製品ラベル/ file2Stream'、 タイプ'GET'、 データ:Base64.encode(JSON.encode(パラメータ))、 データ型: "テキスト"、 成功:機能(データ) { downloadFile(名前、 VARブロブ=新たなBLOB([コンテンツ])。 VAR EVT = document.createEvent( "のMouseEvents"); evt.initMouseEventは(真、偽、窓、0、0、0、0、0、偽、偽、偽、偽、0、NULL、 "クリック"); aLink.download =ファイル名; aLink.href = URL.createObjectURL(BLOB)。 aLink.dispatchEvent(EVT) }
バックグラウンド処理制御、参照http://blog.sina.com.cn/s/blog_87216a0001014sm7.html
/ ** *返回流 * * @param requestMap请求参数 * @param応答返回对象 * / @RequestMapping(値= "/ file2Stream"、方法= RequestMethod.GET) 公共無効file2Stream(@Json地図<文字列、オブジェクト> requestMap 、HttpServletResponseの応答){ 試み{ 文字列のURL = String.valueOf(requestMap.get( "URL")); // URL URL =新しいURL(String.valueOf(requestMap.get( "URL"))); InputStream ISTREAM = getFileStream(URL); OutputStreamストリーム= response.getOutputStream()。 stream.write(StreamUtils.getBytes(ISTREAM))。 stream.flush(); stream.close(); }キャッチ(例外e){ LOG.error( "ProductSalesRecommendController.file2Stream誤差|({})"、E)。 } } / ** * HttpURLConnectionの获取网络路径的文件流 * * @param URL链接 * @return入力ストリーム * @throwsのIOException * / プライベート入力ストリームgetFileStream(URL、URL)スローにIOException { HttpURLConnectionのCONN =(HttpURLConnectionの)url.openConnection() ; conn.setConnectTimeout(* 1000年5)。 conn.setRequestMethod( "GET"); 入力ストリームあるinStream = conn.getInputStream()。 あるinStreamを返します。 } / ** *ネットワークパスのHttpClientストリームファイルを取得します * * @paramのURLリンク文字列 * @returnのInputStream * @throws IllegalStateExceptionが * @throws IOExceptionが * / プライベートgetFileStreamのInputStream(文字列URL)はIllegalStateExceptionが、IOExceptionがスロー{ HttpParamsがあるHttpParams新しい新BasicHttpParams =(); HttpConnectionParams .setConnectionTimeout(httpParams、5000); //設定されている接続タイムアウトは5秒です HttpClientをクライアント=新しい(httpParams)DefaultHttpClient ; // HTTPクライアントが要求を送信する生成オブジェクト のHttpResponseをhttpResponse = client.execute(新しいHTTPGET( URL)); / /リクエストを送信し、応答を待っている HttpEntityエンティティ= httpResponse.getEntity(); //は、内部の応答内容を取得し 、InputStreamであるinStream = entity.getContent(); あるinStreamを返します。 }
//得到拼接字符串機能getFJInfo(名前、URL){リターン "<TR> <TDスタイル= ''> <A HREF = 'javascriptの:無効(0)' οnclick= 'getDownFile(\ "" + URL +" \」\ "" +名+ "\") '>」+名+ "</a>の</ TD> </ TR>"} //文件下载機能getDownFile(URL、名前){VAR PARAM = { "URL":URL}; $ AJAX({URL:のcontextPath + '/製品ラベル/ file2Stream'、タイプ: 'GET'、データ:Base64.encode(JSON.encode(PARAM))、データ型: "テキスト"成功:関数(データ){downloadFile(名前、データ)}})} //流处理触发下载事件関数downloadFile(ファイル名、コンテンツ){VAR ALINK =のdocument.createElement( ''); VARブロブ=新しいブロブ([コンテンツ]); VAR EVT = document.createEvent( "のMouseEvents"); evt.initMouseEvent( "クリック"、真、偽、窓、0、0、0、0、0、偽、偽、偽、偽、0、NULL); aLink.download =ファイル名; aLink.href = URL.createObjectURL(BLOB); aLink.dispatchEvent(EVT)}