阅读更多
(下载)
function downloadFile(filePath){
var fileName=encodeURI(filePath);
document.getElementById("hidden_frame").src = "JS/StreetMap/downloadFile.jsp?fileName="+fileName;
}
public void downloadFile() {
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = getRequest();
response.setCharacterEncoding("GBK");
String fileUrl=request.getParameter("fileUrl");
String fileName=request.getParameter("fileName");
String cmsAttachRealFile = "";
try {
fileUrl = new String(fileUrl.getBytes("ISO8859-1"),"GBK");
cmsAttachRealFile = FilePathSptUtil.UPLOAD_ROOT_PATH
//+ FilePathSptUtil.UPLOAD_CMS
+ fileUrl;
fileName = new String(fileName.getBytes("ISO8859-1"),"UTF-8");
fileName = URLEncoder.encode(fileName, "UTF-8");
} catch (Exception e1) {
// TODO 附件流下载 弹出下载框
e1.printStackTrace();
}
try {
OutputStream o = response.getOutputStream();
byte b[] = new byte[500];
File fileLoad = new File(cmsAttachRealFile);
response.setContentType("application/octet-stream");
response.setHeader("content-disposition",
"attachment; filename=\""
+ fileName + "\"");
long fileLength = fileLoad.length();
String length1 = String.valueOf(fileLength);
response.setHeader("Content_Length", length1);
FileInputStream in = new FileInputStream(fileLoad);
int n;
while ((n = in.read(b)) != -1) {
o.write(b, 0, n);
}
in.close();
o.close();
} catch (Exception e) {
// TODO: handle exception
}
}
//jsp
response.setCharacterEncoding("UTF-8");
String fileName=request.getParameter("fileName");
String applicationPath = application.getRealPath("");
String filePath =applicationPath;
String suffixName = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length()).toLowerCase();
String realFilePath = "";
try {
// fileName = new String(fileName.getBytes("ISO-8859-1"),"UTF-8");
realFilePath = filePath+fileName;//附件地址
File fileLoad = new File(realFilePath);
if(!fileLoad.exists()){
System.out.println("没有您要打开的文件");
}else {
// fileName = URLEncoder.encode(fileName, "UTF-8");
String realFileName = fileName.substring(fileName.lastIndexOf("/")+1,fileName.length());
realFileName = URLEncoder.encode(realFileName, "UTF-8");
OutputStream o = response.getOutputStream();
byte b[] = new byte[512];
//contentType设定
String contentType = ZipUtil.getContentType(suffixName);
response.setContentType(contentType);
response.setContentType("application/octet-stream");
//attachment表示网页会出现保存、打开对话框;inline 直接页面打开
response.setHeader("content-disposition","attachment; filename=\"" + realFileName + "\"");
//response.setHeader("content-disposition","inline; filename=\"" + fileName + "\"");
long fileLength = fileLoad.length();
String length1 = String.valueOf(fileLength);
response.setHeader("Content_Length", length1);
FileInputStream in = new FileInputStream(fileLoad);
int n;
while ((n = in.read(b)) != -1) {
o.write(b, 0, n);
}
in.close();
o.close();
}
} catch (Exception e) {
e.printStackTrace();
}