AJAXリクエストが応答しませんでした後でファイルをダウンロード
// $アヤックス({ // URL :, //タイプ: 'POST'、 //データ型: 'JSON'、// JSON返回值类型 //データ:{ // FILEID:FILEID //} //成功:関数(データ){ //はconsole.log( "downFile -------"); // MaskUtil.unmask(); //} //エラー:関数(){ // MaskUtil.unmask (); //警告( "下载异常!"、 ""、NULL、{タイプ: '警告'}); //} //}); 改用window.location.href = URL即可 window.locationの。 HREF = basePathを+ "安らか/ downloadFile.do FILEID =?" + FILEID。リア:
@RequestMapping(値= "/ downloadFile") 公共ボイドdownloadFile(文字列FILEID、HttpServletRequestのリクエスト、HttpServletResponseの応答)にIOException {スロー //文字列FILEID = request.getParameter( "ファイルID")== NULLか?"":request.getParameter( "FILEID"); logger.info( "downloadFile番号:" + FILEID)。 地図<文字列、オブジェクト>のparams = Maps.newConcurrentMap(); params.put( "ID"、GlobalVariable.MONGO_KEY_PREFIX + FILEID)。 JSONObject JSON = fileUpDownload.fileDownloadFromMongo(propertiesUtil.getUploadUrl()、propertiesUtil.getCollectionName()、paramsは)。 JSONObject reJson =新しいJSONObject(); reJson.put( "成功"、偽の); (json.getBooleanValue( "成功"の場合 response.setContentType(「ファイルapplication / octet-streamと」); //セット3コンテンツ配置ヘッダに応答して、オープン形式のファイルをダウンロードするためのブラウザを制御する。 Response.AddHeader(「コンテンツの廃棄」、「添付ファイル、ファイル名=」+新しい新ストリング(fileName.getBytes( "UTF-8")、 "ISO8859-1")); のOutputStream OS = NULL; BufferedInputStreamをBIS = NULL; 試み{ OS = response.getOutputStream(); os.write(json.getBytes( "バイト「)); os.flush(); }キャッチ(IOExceptionをE){ e.printStackTrace(); } {ついに 試し{ !IF(BIS = NULL)= NULL) bis.close(); }キャッチ(IOExceptionを電子){ e.printStackTrace(); } {試みる (!OS = NULL)場合 にos.close(); }キャッチ(IOExceptionを電子){ e.printStackTrace(); } } } }