远程读取,本地保存

<%@page contentType="text/html;charset=gb2312"%>
<%@page import="java.io.*"%>
<jsp:useBean id="str" scope="page" class="getStr.getStr"/>
<%
String Filename = request.getParameter("FileName");//接收传过来的文件名
if(Filename==null){Filename = "";}
else{Filename=str.getStr(Filename);}
String Path = request.getParameter("Path");//接收传过来的文件对应的文件夹

File file = new File(request.getRealPath("/")+"MsgPerson/"+Path+"/"+Filename);
out.print(file);
if(!file.exists())
out.println("文件不存在,请联系系统管理员!");
else{
//得到文件名字和路径
String filename = "";
String S_FilePath=request.getRealPath("/")+"MsgPerson//"+Path+"//"+Filename;

int pos = 0;
pos = S_FilePath.lastIndexOf("//");//找到最后一个"//"记录其后的字符数

if(pos != -1)
filename = S_FilePath.substring(pos+1, S_FilePath.length()); //取出附件名
String strChina = new String(filename.getBytes("gb2312"),"iso8859-1");

// 设置响应头和下载保存的文件名
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=/"" + strChina+ "/"");

// 打开指定文件的流信息
java.io.FileInputStream fileInputStream = new java.io.FileInputStream(file);

// 写出流信息
int totalRead = 0;
int readBytes = 0;
long fileLen = file.length();
byte b[] = new byte[65000];//设置缓存大小
response.resetBuffer();
while((long)totalRead < fileLen)
{
readBytes = fileInputStream.read(b);
totalRead += readBytes;
response.getOutputStream().write(b, 0, readBytes);
}
fileInputStream.close();
}
%> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值