可以跨域下载
/**
* 音频下载
*/
@RequestMapping("/audio/download")
public void downloadFile(HttpServletRequest request, HttpServletResponse response) throws IOException {
//String id = request.getParameter("id");
String filePath = ServletRequestUtils.getStringParameter(request, "filePath", ""); //
String fileName = ServletRequestUtils.getStringParameter(request, "fileName", ""); //
String destUrl = filePath;
//System.out.println("--------------"+filePath);
String fileFormat=filePath.substring(filePath.lastIndexOf("."));
String name=fileName.trim()+fileFormat;
//File f = new File(filePath);
//response.setHeader("Content-Disposition", "attachment; filename="+java.net.URLEncoder.encode(f.getName(),"UTF-8"));
//System.out.println("--------------"+f.getName());
// 建立链接
URL url = new URL(destUrl);
HttpURLConnection httpUrl = (HttpURLConnection) url.openConnection();
// 连接指定的资源
httpUrl.connect();
// 获取网络输入流
BufferedInputStream bis = new BufferedInputStream(httpUrl.getInputStream());
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition", "attachment; filename="+java.net.URLEncoder.encode(name,"UTF-8"));
OutputStream out = response.getOutputStream();
byte[] buf = new byte[1024];
if (destUrl != null) {
BufferedInputStream br = bis;
int len = 0;
while ((len = br.read(buf)) > 0){
out.write(buf, 0, len);
}
br.close();
}
out.flush();
out.close();
}
页面主要代码:
<div class="txt-2" style="padding-left:6px;float:none;">
<a href="/wxj/audio/download?filePath=${(contentJson.audiolink)!''}&fileName=${(course.title)!''}" class="btn btn-info">下 载</a>
</div>