複数のイメージの Java Web パッケージのダウンロード、プロンプト ボックスがポップアップ_html/css_WEB-ITnose

WBOY
リリース: 2016-06-24 11:44:30
オリジナル
1277 人が閲覧しました

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 fileList = new ArrayList();
String path = request.getSession().getServletContext().getRealPath("");
String[] Trims = ids.split(", ");
String type=""; //ファイル形式サフィックス
for(int i=0;i Operator oper = opService.getOperatorById(Integer.parseInt(trims[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);" を追加することを忘れないでください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート