`
feng5588feng
  • 浏览: 12520 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

jsp、java下载附件

 
阅读更多
传入此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();}

%>
分享到:
评论

相关推荐

    java+jsp 文件下载(服务器上的文件)

    在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...

    jsp附件上传与下载的小例子

    在这个"jsp附件上传与下载的小例子"中,我们将深入探讨如何使用JSP实现文件的上传与下载功能。这个小例子可能涉及了两个关键库:jspupload和jspsmartupload。 jspupload是一个早期的开源库,专门用于处理JSP文件...

    java、jsp实现附件上传资料

    【Java和JSP实现附件上传】在Web开发中,文件上传功能是非常常见且重要的一个环节。Java和JSP提供了一套完整的解决方案来处理文件上传的需求。以下是对标题和描述中涉及知识点的详细说明: 1. **文件上传组件**: 在...

    Java/Jsp 多功能上传下载模块

    Java/JSP多功能上传下载模块是Web开发中常见的一种功能组件,尤其在企业级应用和网站中,用于处理用户上传文件(如图片、文档等)和下载资源的需求。本模块提供了完善的解决方案,支持多文件上传和下载,使得用户...

    完整java上传附件案例,SSH2架构,开源

    4. 包含中文名称的文件上传、附件上传成功后,在数据库表中插入一条记录,记录信息包括一个随机字符的字段,在下载时候通过该字段找到相应的附件 5. 上传文件时候, 反映上传进度 界面设计说明 对上传操作的页面显示...

    jsp实现文件上传下载

    本文将深入探讨如何使用Java和JSP(JavaServer Pages)技术实现文件的上传与下载功能。 首先,我们需要理解JSP的基础。JSP是一种基于Java的技术,它允许开发者在HTML页面中嵌入Java代码,以实现动态网页生成。JSP...

    jsp,java,邮件发送器(带附件)

    "jsp,java,邮件发送器(带附件)" 这个标题指出,我们关注的是一个使用Java和JSP技术实现的电子邮件发送系统,具备发送附件的功能。这意味着该系统能够处理不仅仅是纯文本内容,还支持包括文档、图片、音频等各种...

    jsp-email.rar_email send java jsp_jsp email_jsp 邮件_邮件 jsp_邮件 附件

    这个名为"jsp-email.rar_email send java jsp_jsp email_jsp 邮件_邮件 jsp_邮件 附件"的压缩包包含了一个简单的示例,通过Servlet辅助JSP来完成邮件发送任务。 1. **邮件发送基础** 在Java中,我们通常使用...

    java jsp页面处理 的图片上传下载的文件

    在Java Web开发中,处理图片的上传和下载是常见的需求,尤其...以上就是使用Java JSP处理图片上传下载的基本流程和关键知识点,希望对你的学习有所帮助。在实际操作中,不断实践和调试,你会对这些概念有更深入的理解。

    java中jsp上传附件的控件

    本篇将详细介绍如何在Java JSP中实现文件上传,以及如何处理上传的附件。 首先,让我们理解文件上传的基本原理。在HTML表单中,我们可以使用`&lt;input type="file"&gt;`标签让用户选择本地文件进行上传。然而,JSP本身并...

    java 附件实现机制

    ### Java附件实现机制详解 #### 一、概述 在Java应用程序开发中,处理文件上传、下载及图片展示等功能是常见的需求。特别是在企业级应用中,这些功能往往涉及到大量的业务逻辑和安全控制。本文将深入探讨Java环境...

    java jsp+servlet实现文件下载(而不是在网页中显示出文件内容) 迅雷下载功能.zip

    `Content-Disposition`指定浏览器应以附件形式下载文件,并可以设置文件名,如`attachment; filename=example.txt`。 4. **读取文件并输出**:使用Java的`java.io`包中的`FileInputStream`读取文件内容,然后通过`...

    JSP多附件上传系统

    【JSP多附件上传系统】是一个基于Java JSP技术实现的Web应用,旨在提供一个能够支持用户上传多个文件的功能。在传统的Web开发中,单个文件上传是常见的操作,但随着互联网应用的发展,多文件上传的需求越来越普遍,...

    jsp+sql05附件上传与下载

    四、附件下载 1. 查询数据库:用户请求下载时,JSP页面会发送一个请求到服务器,携带文件ID或名称等信息。服务器端根据这些信息查询SQL Server 2005数据库,获取文件的相关信息。 2. 创建下载响应:服务器端创建一...

    jsp文件的上传和下载

    在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...

    java实现下载例子

    这个例子展示了如何使用Java和JSP(JavaServer Pages)技术来创建一个简单的文件下载服务。以下是对给定代码的详细解释: 1. **字符编码转换**: 在处理中文文件名时,需要考虑字符编码的问题。在`toUtf8String()`...

    小型JSP(JAVA)论坛

    【JSP(JAVA)论坛详解】 本项目是一个小型的JSP(Java Server Pages)论坛,专为初学者设计,旨在帮助他们理解并实践JSP和Java Web开发技术。作为一个基于JAVA的Web应用,它涵盖了从数据库交互、用户认证到动态...

    java 附件文件上传

    它简化了Java Servlet和JSP的开发,提高了代码的可维护性和可扩展性。 2. **文件上传原理** 文件上传是通过HTTP协议的POST请求来实现的。在HTTP请求中,文件数据被编码为多部分/形式数据(multipart/form-data),...

    jsp页面下载文件

    本话题关注的是如何在JSP页面上实现文件下载功能,这对于构建一个交互性强、功能丰富的Web应用是至关重要的。以下我们将详细探讨这个主题。 首先,我们需要理解JSP页面的基本结构和工作原理。JSP页面由HTML、CSS、...

    javajsp.rar_javajsp_jsp论坛_论坛_论坛 java

    8. **文件上传与下载**:如果论坛支持附件功能,就需要处理文件上传和下载,这涉及到文件存储策略和防止恶意文件上传的安全措施。 9. **模板引擎**:JSP虽然可以进行视图渲染,但现代开发更倾向于使用如FreeMarker...

Global site tag (gtag.js) - Google Analytics