传入此jsp中的参数均已URLDencoder过。<%@page import="java.net.URLEncoder"%>
<%@page import="java.io.BufferedOutputStream"%>
<%@ page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%
boolean isError = false;
String errorMsg = "";
response.reset();//可以加也可以不加
request.setCharacterEncoding("UTF-8");
String folder = "news";
if(request.getParameter("folder")!=null){
folder = "upload/"+(String)request.getParameter("folder");
}
String newname = request.getParameter("newname");
// 是否允许直接在浏览器内打开
boolean isInline = false ;
out.clear();
response.reset();
String filePath = request.getRealPath("/"+folder)+"/" +newname;
java.io.BufferedOutputStream output = null ;
java.io.BufferedInputStream input = null ;
try {
java.io.File f = new java.io.File(filePath);
if(f.exists() && f.canRead()){
String mimetype = null;
mimetype = application.getMimeType( filePath );
if(mimetype==null){
mimetype = "application/octet-stream;charset=utf-8";
}
response.setContentType(mimetype);
// IE 的话就只能用 IE 才认识的头才能下载 HTML 文件, 否则 IE 必定要打开此文件!
String ua = request.getHeader("User-Agent"); //获取终端类型
if(ua==null ){ua = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;)";}
boolean isIE = ua.toLowerCase().indexOf("msie")!=- 1; //是否为 IE
if (isIE && !isInline) {
mimetype = "application/x-msdownload";
}
response.setContentType(mimetype);
// 是否内联附件
String inlineType = isInline?"inline":"attachment";
response.setHeader("Content-Disposition" , inlineType + ";filename=" + filename);
// 设置下载内容大小
response.setContentLength((int)f.length());
// 缓冲区
byte[] buffer = new byte[ 4096 ];
output = new java.io.BufferedOutputStream(response.getOutputStream());
input = new java.io.BufferedInputStream(new java.io.FileInputStream(f));
int n = (-1);
while((n=input.read(buffer,0,4096))>-1){
output.write(buffer,0,n);
}
response.flushBuffer();
}else{
isError = true;
errorMsg = "文件不存在!";
}
} catch(Exception ex) {
isError = true;
errorMsg = "您下载的文件出现异常!";
} finally {
if(isError){
String path = request.getHeader("Referer");
errorMsg=new String(errorMsg.getBytes("GBK"), "ISO8859_1");
%>
<script type="text/javascript">
alert('<%=errorMsg%>');
window.location.href='<%=request.getHeader("Referer")%>';
</script>
<%
}
if(input!=null ){input.close();}
if(output!=null ){output.close();}
}
%>
分享到:
相关推荐
jsp jspupload jspsmartupload
4. 包含中文名称的文件上传、附件上传成功后,在数据库表中插入一条记录,记录信息包括一个随机字符的字段,在下载时候通过该字段找到相应的附件 5. 上传文件时候, 反映上传进度 界面设计说明 对上传操作的页面显示...
此文件是java(jsp)上传附件最好的控件;可以一次上传多个附件,可自己调试所上传的附件的大小;也可上传到数据库中,以免文件丢失!
jsp,java做的邮件发送器,带附件,使用了bootstrap美化界面。
最近在做文件上传下载,搜集了点资料希望,对大家有帮助!
很好用的一个jsp文件上传下载开源,村!!!!!!!
jsp带附件邮件发送工具,运用了servlet,基本功能都实现了
Java__JSP上.mp4
uploadify2.1.0 spring mvc java jsp代码
支持多附件上传, 删除记录信息 自动删除文件信息,避免服务器垃圾文件。
jsp版的kindeditor附件上传组件
结合jspsmartupload并附上中文jar包,有多个示例,有用jsp上传下载示例,有action上传下载示例,jsp和action都有上传到本机文件夹和数据库或者从数据库下载显示的示例,需要的朋友绝对不能错过,例子简单易懂,并附...
uploadify jsp上传附件火狐浏览器不兼容丢失session问题,Uploadify v3.2
一个采用SWFUpload控件开发的JAVA 附件上传系统,支持进度条展示,上传信息反显,支持重复上传后的非覆盖,支持异常处理。代码高效,简单,易懂。
使用范例请参考我的另一资源“jsp java access跨平台组件 ”java代码。 本jar包经过linux,windows 测试均未出现问题。 另外本jar包的特色就是支持hibernate 方言,附件包括两个文件 1:jar包 2:hibernate.jar ...
笔者当初为了学习JAVA,收集了很多经典源码,源码难易程度分为初级、中级、高级等,详情看源码列表,需要的可以直接下载! 这些源码反映了那时那景笔者对未来的盲目,对代码的热情、执着,对IT的憧憬、向往!此时此...
中国移动业务管理系统源码(SSH)基于java的三大框架源码
使用的时候,请参考附件数据库导入一节。或将需要用到的某章的数据库目录复制到“mysql安装根目录\data”文件夹下就可以了。 ★★★★★★★★★★★★★★★★★★★★★★★★★ 该实例来源下面这本书 《精通...
资源名称:java-jsp第三版鲍格斯坦版中文翻译版PTF 源代码资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
JAVA+JSP的聊天室 8个目标文件 简单 JavaScript万年历 显示出当前时间及年份,还可以选择年份及月份和日期 Java编写的HTML浏览器 一个目标文件 摘要:Java源码,网络相关,浏览器 Java编写的HTML浏览器源代码,一个...