对于
网站来说,网站本身通常需要提供一些资源或数据来
下载。说到下载,最原始的
方法是在
网页上提供下载的网址。今天还有几种其他下载方法,哪种方法更好,它也能满足你的需要。
1,最直接和最简单的方法是将
文件地址直接放到HTML页面中的链接中,这样做的缺点是暴露文件在
服务器上的
路径,在文件下载时没有其他控件(如
权限),这不是一个例子。
2,将文件
转换为服务器端的输出流,写入响应,采取响应将文件带到
浏览器,让浏览器提醒
用户是否愿意将文件
保存到
本地。
<
response.setcontenttype(fileminitype);
response.setheader(
位置 response.setheader(缓存
控制 / /文件名应该是编码(UTF-8)
response.setheader(内容
配置 response.setcontentlength(文件长度);
OutputStream OutputStream = response.getoutputstream();
输入流InputStream =新的输入(听);
字节{缓冲区=新的字节{ 1024 };
int=1;
而(((我= inputstream.read(缓冲区))!= 1){
outputstream.write(缓冲区,0,我);
}
OutputStream.flush();
OutputStream.close();
InputStream.close();
OutputStream = null;
%>
3,因为它是JSP,还有另一种使用applet下载文件的方法,但是客户机首先必须信任applet,它接受servlet发送的数据流,并将其写入本地。
Servlet的身边的例子
公共无效服务(HttpServletRequest req,HttpServletResponse RES)
抛出IOException {返回,
res.setcontenttype(
文本/平原);
OutputStream OutputStream = null;
{试
OutputStream = res.getoutputstream();
文件路径 / / srcfile文件中写入输出流
PopFile(srcfile,OutputStream));
} catch(IOException e){
E.printStackTrace();
}
}
JApplet的身边的例子
URLConnection CON;
{试
URL被称为servlet的URL,例如*
对url.openconnection();
Con.setUseCaches(假);
Con.setDoInput(真的);
Con.setDoOutput(真的);
con.setrequestproperty(内容
类型 应用程序/字节流);
在con.getinputstream InputStream();
progressmonitorinputstream pminputstream =新progressmonitorinputstream
(窗格,从服务器下载文件内容
progressmonitor NetWare
打印监督程序= pminputstream.getprogressmonitor();
PMonitor.setMillisToDecideToPopup(3);
PMonitor.setMillisToPopup(3);
/ / localfilepath本地路径,localstr文件夹,文件名文件名
localfilepath = localstr +文件名的字符串;
方法是输入流savefilsavefilee / pminputstream在localfilepath文件写的
如果(savefilsavefilee(localfilepath,pminputstream)){
openlocalfile(localfilepath);
}
4,顺便说一下,
上传文件的代码也贴JApplet。
JApplet的身边的例子
URLConnection CON;
{试
对url.openconnection();
URL被称为servlet的URL,例如*
Con.setUseCaches(假);
Con.setDoInput(真的);
Con.setDoOutput(真的);
con.setrequestproperty(内容类型
OutputStream = con.getoutputstream();
/ / localfilepath本地路径,localstr文件夹,文件名文件名
localfilepath = localstr +文件名的字符串;
的getoutputstream文件localfilepath / /文件写入到输出流出来
getoutputstream(localfilepath,出去);
在con.getinputstream InputStream();
返回true;
} catch(IOException e){
System.out.println(文件上传
错误!;
E.printStackTrace();
}
servlet结束代码示例
公共无效服务(HttpServletRequest req,HttpServletResponse RES)
抛出IOException {返回,
res.setcontenttype(文本/平原);
输入流InputStream = null;
{试
InputStream = res.getinputstream();
InputStream / /输入流保存到文件的文件路径srcfile
WriteFile(srcfile,InputStream);
} catch(IOException e){
E.printStackTrace();
}
结束服务
摘要:在文件的
传输是流的形式,对
硬盘文件的形式。我们要做的就是把流量和读取流通过HttpServletRequest和httpservletresponse,或响应和请求,
操作文件转换成流或将流到一个文件。
以上是jsp文件下载
函数的方法,希望有一种适合你的方法,帮助你
解决jsp文件下载
功能的实现问题。