`

servlet 实现的上传和下载

 
阅读更多

IE下上传

前端显示
<form action="UploadServlet" method="post">
		<label for="info">信息:</label>
		<input type="text" name="info"><br>
		<label for="file">文件:</label>
		<input type="file" name="file"><br>
		<input type="submit" value="上传">
	</form>

 

后台处理

@WebServlet("/UploadServlet")
public class UploadServlet extends HttpServlet
{
    private static final long serialVersionUID = 1L;

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException,
            IOException
    {
        request.setCharacterEncoding("UTF-8");
        String filePath = request.getParameter("file");
        System.out.println("filePath========="+filePath);
        File uploadDirPath = new File(getServletContext().getRealPath("/uploadFile"));
        System.out.println("uploadDirPath====="+uploadDirPath);
        if(!uploadDirPath.exists()){
            uploadDirPath.mkdirs();
        }
        String fileName = null;
        if(filePath.indexOf(File.separator)<0){//firefox浏览器取得上传的文件名
             fileName = filePath;
        }
        else{//IE浏览器取得上传的文件名
            fileName = filePath.substring(filePath.lastIndexOf(File.separator)+1);
        }
        
        p(fileName);
        FileInputStream fio = null;
        FileOutputStream fos = null;
        try
        {
             fio = new FileInputStream(filePath);
             fos = new FileOutputStream(uploadDirPath+File.separator+fileName);
            int c;
            while((c=fio.read())!=-1){
                fos.write((char)c);
            }
        }
        catch (Exception e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            fio.close();
            fos.close();
        }
        
        
    }
    
    
    public static void p(Object o){
        System.out.println(o);
    }
    
}

 

 

 

 

 

二。下载

前台界面
<a href="DownLoadServlet?fileName=东软实训总结.doc">东软实训总结.doc</a><BR>
	<a href="DownLoadServlet?fileName=Android_de.rar">Androd.rar</a>

 

后台处理
@WebServlet("/DownLoadServlet")
public class DownLoadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        
        p(getServletContext().getRealPath(""));
        //request.setCharacterEncoding("UTF-8");
        //要下载的文件名
        String fileName = new String(request.getParameter("fileName").getBytes("ISO-8859-1"),"UTF-8");
      //要下载的文件的扩展名
        String fileNameExt = fileName.substring(fileName.indexOf("."));
        System.out.println(fileName);
        //下载文件所在的服务器端的目录
        String downLoadDir = getServletContext().getRealPath(File.separator+"uploadFile");
      //下载文件所在的服务器端的绝对路径
        String downloadPath = downLoadDir+File.separator+fileName;
        p(downloadPath);
        File files = new File(downLoadDir);
        boolean flag = false;
       /* for(File file:files.listFiles()){//查找资源看是否存在
            if(fileName.equals(file.getName())){
                flag = true;
                break;
            }
        }*/
        
        if(new File(downLoadDir,fileName).exists()){
            flag = true;
        }
        
        if(flag){
            p("资源存在");
          //  response.addHeader("content-type", "application/x-download");
            //response.setContentType("application/x-msdownload");
            response.addHeader("Content-Disposition", "attachment;filename="+Calendar.getInstance().getTimeInMillis()+fileNameExt);
            //设置文件的大小
           response.addHeader("Content-length", Long.toString(new File(downloadPath).length()));
            FileInputStream fio = new FileInputStream(new File(downloadPath));
            OutputStream fos = response.getOutputStream();
            byte[] b = new byte[1024];
            int n;
            while((n=fio.read(b))!=-1){
                fos.write(b);
            }
            fos.flush();
            fio.close();
            fos.close();
        }
        else{
            response.getWriter().println("资源不存在");
        }
    }
    
    public static void p(Object o){
        System.out.println(o);
    }
}

 

分享到:
评论

相关推荐

    jsp servlet 实现上传和下载

    在本资源中,"jsp servlet 实现上传和下载" 主题涵盖了如何利用这两种技术,结合SmartUpload组件来处理文件的上传与下载操作,并且涉及到了数据库的交互。下面将详细解释这些知识点。 1. JSP:JSP是一种服务器端...

    使用I/O流在jsp+servlet实现上传和下载

    有感于各种方法的上传和下载,比较麻烦,我使用简单的输入输出流,读取文件信息,实现把指定文件上传到服务器以及在页面使用脚本window.open()的方式,实现从服务器端的下载。供大家参考!不足之处,欢迎指出,不胜...

    servlet实现上传下载 java源码

    在Java Web开发中,...对于文件上传下载,还需要理解HTTP协议中的相关概念,如Content-Type、Content-Disposition等。分页功能则涉及到数据的组织和展示策略。最后,对Java基础和Web开发的整体理解也是必不可少的。

    CKEditor 上传文件(Servlet实现)

    通过以上步骤,你可以成功地在CKEditor 3.6.0中集成Servlet实现的文件上传功能。这个过程不仅适用于图片,还可以扩展到其他类型的文件,如文档、音频和视频。注意在实际应用中,根据服务器环境和项目需求进行相应的...

    servlet 文件上传下载例子

    在这个"Servlet 文件上传下载例子"中,我们将探讨如何使用Servlet实现文件的上传和下载功能,这对于构建一个简单的图片文件服务器至关重要。 1. **文件上传** - **MultipartRequest**: 在Servlet中,处理文件上传...

    java servlet实现图片上传下载

    总结起来,"Java Servlet实现图片上传下载"涉及到的主要知识点有:Servlet生命周期、HTTP协议、文件I/O、数据库操作、表单提交处理、文件存储策略、安全控制、响应头设置以及异常处理。掌握这些技能,开发者可以构建...

    JSP/servlet实现上传下载

    以上就是使用JSP和Servlet实现文件上传下载的基本流程和关键代码。在实际应用中,我们还需要考虑错误处理、安全性(如防止文件覆盖、上传恶意文件等)以及性能优化(如使用缓冲、断点续传等)。在大型项目中,可能还...

    Servlet实现文件上传与下载

    ### Servlet实现文件上传与下载 #### 一、概述 在Web开发中,文件的上传与下载是一项非常常见的功能需求。本文将详细介绍如何使用Java Servlet技术实现文件的上传和下载功能。我们将通过一个简单的示例来展示整个...

    java servlet实现上传/下载文件

    servlet实现上传文件和下载文件的方法,在浏览器中输入http://ip:port/servletName?path这种方式将客户端文件上传至服务器端,简单的例子,servletName参照web.xml path参照servlet中写的参数

    servlet实现文件上传下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,其中涉及到的主要技术点包括Servlet API、Multipart解析以及文件流操作。 首先,我们需要了解Servlet在文件上传中的作用。Servlet在接收到客户端(通常...

    jsp+servlet实现文件上传下载

    ### jsp+servlet实现文件上传下载 在现代Web开发中,文件上传下载是常见的功能之一。JSP(JavaServer Pages)与Servlet技术结合可以轻松实现这一功能。本篇将详细介绍如何利用jspSmartUpload组件实现文件的上传与...

    安卓+servlet实现上传下载图片

    总结来说,"安卓+servlet实现上传下载图片"涉及的关键知识点包括: 1. Android客户端:使用HttpURLConnection或OkHttp发起HTTP请求,读取图片文件,发送POST请求上传图片,接收GET响应下载图片。 2. Servlet服务端...

    jsp+servlet头像上传功能

    在这个场景下,`JSP(JavaServer Pages)` 和 `Servlet` 是Java Web开发中的关键组件,它们一起用于实现动态网页功能。本篇文章将深入探讨如何利用`JSP`和`Servlet`来创建一个头像上传功能。 首先,`JSP`是一种基于...

    JSP+Servlet实现文件上传到服务器功能

    本文实例为大家分享了JSP+Servlet实现文件上传到服务器功能的具体代码,供大家参考,具体内容如下 项目目录结构大致如下: 正如我在上图红线画的三个东西:Dao、service、servlet 这三层是主要的结构,类似 MVC ...

    Servlet实现资源的上传与下载

    在本主题"Servlet实现资源的上传与下载"中,我们将深入探讨如何利用Servlet技术来实现用户上传文件到服务器以及从服务器下载文件的功能。这两个功能在许多Web应用程序中都是至关重要的,例如在线文档管理系统、社交...

    使用Servlet实现文件的上传与下载

    本教程将详细讲解如何使用Servlet实现文件的上传和下载功能,这对于任何Web应用程序来说都是至关重要的。 首先,我们来了解一下Servlet的基本概念。Servlet是Java编程语言中一个用于扩展服务器功能的接口,主要应用...

    jsp+servlet小项目(实现图片上传功能)

    本项目"jsp+servlet小项目(实现图片上传功能)"旨在教授如何利用这两者创建一个简单的图片上传功能。下面将详细介绍这个项目涉及的关键知识点。 1. JSP基础:JSP是一种动态网页技术,允许开发者在HTML页面中嵌入...

    Servlet文件上传、下载及缩略图的生成

    在这个项目中,我们重点关注的是Servlet如何实现文件上传、下载和缩略图的生成。 首先,让我们深入理解文件上传的过程。在Web应用中,文件上传通常通过HTML表单实现,使用`&lt;input type="file" /&gt;`标签让用户选择要...

    文件上传与下载servlet

    下面将详细介绍如何使用Servlet实现文件上传和下载的功能。 ### 文件上传 文件上传通常涉及到HTTP协议中的`multipart/form-data`编码类型,这是处理表单数据中包含文件的关键。Servlet 3.0及以上版本提供了更方便...

    Ajax + servlet 实现上传进度条显示

    利用Ajax和Servlet实现文件上传,用来commons-fileupload和commons-io两个包。这两个包也在里边。东西做的很简单,但重点是能对这个方法有所了解就行了,有人想做的更炫的可以自行修改。希望能对大家有所帮助。如果...

Global site tag (gtag.js) - Google Analytics