ホームページ >ウェブフロントエンド >htmlチュートリアル >複数のイメージの Java Web パッケージのダウンロード、プロンプト ボックスがポップアップ_html/css_WEB-ITnose
Spring MVC フレームワークで、フロントエンドの Ajax 呼び出しメソッドを使用して画像をバッチでダウンロードする場合、保存場所の選択ボックスをポップアップ表示するにはどうすればよいですか?
コントローラーメソッド
@RequestMapping("/tcdl")
public ModelAndView dlCode(HttpServletRequest request,HttpServletResponse response,@RequestParam(value="ids") String ids,@RequestParam(value = "funId", required = false )整数 funId) throws IOException{
ModelAndView mav = new ModelAndView();
//response.setHeader("Charset", "UTF-8");
//response.setContentType("text/html; charset=utf-8) ");
List
String path = request.getSession().getServletContext().getRealPath("");
String[] Trims = ids.split(", ");
String type=""; //ファイル形式サフィックス
for(int i=0;i
if(!"".equals(oper.getOpCardUrl())){
ファイル f = new File(path+oper.getOpCodeUrl())
/*int k = oper.getOpCodeUrl().indexOf("other "); ///userPic/3/other/2014011617535382684910.png
int j =0;
while (j != -1) {
j = oper.getOpCodeUrl().indexOf(".");
type = type.substring(j + 1);
}
ファイル f = new File(path+oper.getOpCodeUrl());
String newName = oper.getOpCodeUrl().substring(0,k+1)+oper.getOpUserName( )+oper.getOpMobile()+type;
System.out.println(newName+",newName");*/
if(f.exists()){
// f.renameTo(new File(path+oper. getOpCodeUrl().substring(0,k+1)+newName));
fileList.add(f);
}
}
String fileName = "twoCodeDown"+".zip"; &*/
ファイル f = new File(path+"/tmp");
if(!f.exists()){
f.mkdirs(); }
String outFilePath = path+"/tmp/"+fileName;
ファイル file = new File(outFilePath);
/**サーバー側でパッケージ化およびダウンロードするための一時ファイルを作成します。*/
FileOutputStream outPutStream(file)
/**ファイル出力ストリーム*/
ZipOutputStream toClient = new ZipOutputStream(outPutStream); /this.downloadZip(ファイル);
/**圧縮ストリーム*/
opService.downloadZip(fileList,toClient);
opService.downloadZip(ファイル, 応答);
}
ダウンロード方法
**
* パッケージ化されたファイルをダウンロード
* @throws IOException
* */
public void downloadZip(File file,HttpServletResponse response) throws IOException{
/**圧縮ファイル*/
try {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file.getPath()));
FileOutputStream(file.getPath());
byte[] バッファ = new byte[bis.available()]; read(buffer);
OutputStream toClient = new BufferedOutputStream(outStream);
response.setHeader("Content-Disposition", "attachment; filename=" + file.getName());
toClient.write(buffer);
toClient.flush();
toClient.close();
file.delete(); // 生成されたサーバー側ファイルを削除します
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
ディスカッションに返信 (解決策)
リクエストに ajax を使用していますが、ajax リクエストでは保存を求めるプロンプトが表示されませんマーキーの場所。 js または jquery を使用して送信用のフォームを動的に作成することをお勧めします
response.setHeader("Content-Disposition", "attachment;filename="+imageName);" を追加することを忘れないでください。