jsp中实现图片的下载(其他的文件也可以用)

蛋疼

没有servlet,只能把jsp当成是servlet来用,

  这里面我用了两个jsp页面,都是最简单的功能,没有样式


下载链接jsp


代码:
js:

//下载


function xiazai(){

window.location.href = "download.jsp";
}

html:

<span style="cursor:pointer" οnclick="xiazai()">aa.png</span>



做servlet用的jsp

<body>
<%   
  //关于文件下载时采用文件流输出的方式处理:   
     //加上response.reset(),并且所有的%>后面不要换行,包括最后一个;   
  
  response.reset();//可以加也可以不加   
  response.setContentType("application/x-download");   

String filedownload = request.getRealPath("/")+"/pic/aa.png";   //我这边写死的路径,之前已经把图片传到tomcat里面了,这里面的路径可以从表里读
  String filedisplay = "test.png";   
  //String filedisplay = URLEncoder.encode(filedisplay,"UTF-8");   
  response.addHeader("Content-Disposition","attachment;filename=" + filedisplay);   
  
 java.io.OutputStream outp = null;   
 java.io.FileInputStream in = null;   
 try   
 {   
 outp = response.getOutputStream();   
 in = new java.io.FileInputStream(filedownload);   
 
 byte[] b = new byte[1024];   
 int i = 0;   
 
 while((i = in.read(b)) > 0)   
 {   
outp.write(b, 0, i);   
 }   
//     
outp.flush();   
//要加以下两句话,否则会报错   
//java.lang.IllegalStateException: getOutputStream() has already been called for this respons
out.clear();   
out = pageContext.pushBody();   
}   
 catch(Exception e)   
 {   
 System.out.println("Error!");   
 e.printStackTrace();   
 }   
 finally   
 {   
 if(in != null)   
 {   
 in.close();   
 in = null;   
 }   
 }   
%>




</body>



这段代码,可能比较乱对不起大家了,主要是为了记载下供自己后面去学习的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值