文件位置问题:可以从项目整体往下写,或者直接copy目录,删除前面多余部分
public String getMap(String inputStr, HttpServletRequest request, HttpServletResponse response){
JSONObject jsonObject = JSON.parseObject(inputStr);
String mapCode = jsonObject.getString("mapCode");
byte[] buff = new byte[1024];
//创建缓冲输入流
BufferedInputStream bis = null;
OutputStream outputStream = null;
try {
String fileName = mapCode + ".zip";
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
outputStream = response.getOutputStream();
//这个路径为待下载文件的路径
bis = new BufferedInputStream(new FileInputStream(new File("MarketMobile/src/main/resources/static/ditu/" + fileName)));
int read = bis.read(buff);
//通过while循环写入到指定了的文件夹中
while (read != -1) {
outputStream.write(buff, 0, buff.length);
outputStream.flush();
read = bis.read(buff);
}
}
catch ( IOException e ) {
e.printStackTrace();
//出现异常返回给页面失败的信息
return "fail";
}
finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "success";
}