当前位置: 技术问答>java相关
如何隐藏下载文件的实际地址,用id来取代地址
来源: 互联网 发布时间:2015-06-24
本文导语: tool.zip 然后在some.jsp中用id=request.getParameter("id");这样我通过id去查数据库,得到实际地址,然后出现下载对话框。 可是虽然现在我得到了实际地址,但无法将所得到的实际地址送出去,来使之出现下载对话框。 ...
tool.zip
然后在some.jsp中用id=request.getParameter("id");这样我通过id去查数据库,得到实际地址,然后出现下载对话框。
可是虽然现在我得到了实际地址,但无法将所得到的实际地址送出去,来使之出现下载对话框。
然后在some.jsp中用id=request.getParameter("id");这样我通过id去查数据库,得到实际地址,然后出现下载对话框。
可是虽然现在我得到了实际地址,但无法将所得到的实际地址送出去,来使之出现下载对话框。
|
可以参考http://www.csdn.net/Expert/topic/484/484413.shtm
在some.jsp页面中加入如下代码即可实现下载:
(首先你得先通过id获取文件的物理路径strFullPath)
java.io.File objFile; //文件对象
java.io.RandomAccessFile objFileReader;
byte[] byteBuffer = new byte[4096];
int intLength; //实际读出的字符数
//创建文件对象
//strFullPath为文件的物理路径
objFile = new java.io.File(strFullPath);
//判断文件是否存在
if(objFile.exists()){//文件存在
//获取文件长度
iFileSize = (int)objFile.length();
//设置HTTP输出头参数
response.setHeader("Content-Disposition", "attachment; filename=" + sFileName);
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
response.setContentLength(iFileSize);
//创建读文件对象
objFileReader = new java.io.RandomAccessFile(objFile,"r");
//读文件内容
out.clear();
while((intLength = objFileReader.read(byteBuffer)) != -1){
//输出
out.write(new String(byteBuffer,0,intLength,"ISO-8859-1"));
}
//关闭读文件对象
objFileReader.close();
}
在some.jsp页面中加入如下代码即可实现下载:
(首先你得先通过id获取文件的物理路径strFullPath)
java.io.File objFile; //文件对象
java.io.RandomAccessFile objFileReader;
byte[] byteBuffer = new byte[4096];
int intLength; //实际读出的字符数
//创建文件对象
//strFullPath为文件的物理路径
objFile = new java.io.File(strFullPath);
//判断文件是否存在
if(objFile.exists()){//文件存在
//获取文件长度
iFileSize = (int)objFile.length();
//设置HTTP输出头参数
response.setHeader("Content-Disposition", "attachment; filename=" + sFileName);
response.setHeader("Connection", "close");
response.setHeader("Content-Type", "application/octet-stream");
response.setContentLength(iFileSize);
//创建读文件对象
objFileReader = new java.io.RandomAccessFile(objFile,"r");
//读文件内容
out.clear();
while((intLength = objFileReader.read(byteBuffer)) != -1){
//输出
out.write(new String(byteBuffer,0,intLength,"ISO-8859-1"));
}
//关闭读文件对象
objFileReader.close();
}