`

使用servlet保存用户上传的文件到本地

 
阅读更多
原文地址:http://blog.csdn.net/shuwei003/article/details/6742332



upload.jsp

[plain] view plaincopy
<%@page contentType="text/html;charset=utf-8" %> 
<head> 
<title>fbysss UploadBean 示例</title> 
<!--meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"--> 
<!--meta http-equiv="Content-Type" content="text/html; charset=gb2312"--> 
</head> 
<FORM name="form1" METHOD="POST" ACTION="adddata" ENCTYPE="multipart/form-data"> 
附件 
<input name="attach" type="FILE" id="attach" size="50" /> 
<input name="ok" type= "submit" value="提交"> 
</form> 

web.xml



[plain] view plaincopy
<servlet> 
        <servlet-name>AddDataServlet</servlet-name> 
        <servlet-class>com.upload.action.AddDataServlet</servlet-class> 
    </servlet> 
    <servlet-mapping> 
        <servlet-name>AddDataServlet</servlet-name> 
        <url-pattern>/adddata</url-pattern> 
    </servlet-mapping> 

AddDataServlet.java

[java] view plaincopy
package com.upload.action; 
 
import java.io.File; 
import java.io.IOException; 
import java.util.Iterator; 
import java.util.List; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import org.apache.commons.fileupload.FileItem; 
import org.apache.commons.fileupload.FileItemFactory; 
import org.apache.commons.fileupload.disk.DiskFileItemFactory; 
import org.apache.commons.fileupload.servlet.ServletFileUpload; 
 
public class AddDataServlet extends HttpServlet{ 
 
    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        this.doPost(request, response); 
    } 
 
    @Override 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
        String tempDirectory = "d:/temp/";    //要在最后加上斜杠:temp/,缓存文件目录 
        try { 
            int sizeThreshold = 1024 * 64;  //写满该大小的缓存后,存入硬盘中。 
            File repositoryFile = new File(tempDirectory); 
            FileItemFactory factory = new DiskFileItemFactory(sizeThreshold, repositoryFile); 
            ServletFileUpload upload = new ServletFileUpload(factory); 
            upload.setHeaderEncoding("utf-8");  //设置字符编码 
            upload.setSizeMax(50 * 1024 * 1024); // set every upload file'size less than 50M 
            List items = upload.parseRequest(request);   //这里开始执行上传 
            Iterator iter = items.iterator(); 
             
            while (iter.hasNext()) { 
                FileItem item = (FileItem) iter.next();   //FileItem就是表示一个表单域。 
                 
                if(item.isFormField()){ //isFormField方法用于判断FileItem是否代表一个普通表单域(即非file表单域) 
                    System.out.println("***"+item.getFieldName());   
                }else { 
                    //String fieldName = item.getFieldName();  //获取表单域name属性的值 
                    //String fileName = item.getName();     //返回该文件在客户机上的文件名。e.g: e:\dianying\\video\1.wmv 
                    //System.out.println("*****"+fieldName); 
                    //System.out.println("*****"+fileName); 
                    String path = item.getName(); 
                    String fileName = path.substring(path.lastIndexOf("\\")); 
                    File uploadedFile = new File("d:/video/" + fileName); 
                    item.write(uploadedFile); 
                } 
            } 
        } catch (Exception e) { 
            e.printStackTrace(); 
        } 
 
    } 
 

分享到:
评论

相关推荐

    jsp+servlet+oracle上传图片到数据库(非路径)

    网上现有例子大都是上传本地文件到数据库,该例子可以jsp上传文件并保存到数据库,读取显示;但是最后需要用户自己删除服务器端文件。

    Servlet实现文件上传和下载.docx

    servlet3.0版本以前需要使用第三方的jar包commons- fileupload来实现上传文件,servlet3.0版本自带了上传文件的api,无需第三方jar包 servlet3.0将上传的文件保存在Part实例中,可以通过request对象根据上传的表单...

    web开发文件的上传和下载

    在servlet中读取上传文件的数据,并保存到本地硬盘中。 如何在web页面中添加上传输入项? “file”&gt;标签用于在web页面中添加文件上传输入项,设置文件上传输入项时须注意: 1、必须要设置input输入项的name属性,否则...

    Servlet3.0实现文件上传的方法

    本篇文章主要介绍了Servlet实现文件上传的方法,所谓文件上传就是将本地的文件发送到服务器中保存。有兴趣的可以了解一下。

    Java Web向服务器端上传文件

    java web的文件上传功能,文件上传后保存到服务器本地,亲测通过,并带有详细的注释讲解,简单,适合入门的开发人员。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    20.5 对用户进行统一验证的过滤器 594 20.6 对请求和响应数据进行替换的 20.6 过滤器 600 20.7 小结 609 第21章 中文乱码问题与国际化 610 21.1 中文乱码问题产生的由来 610 21.1.1 常用字符集 610 21.1.2 对...

    ssh(structs,spring,hibernate)框架中的上传下载

     其中save(FileActionForm fileForm)方法,将封装在fileForm中的上传文件保存到数据库中,这里我们使用FileActionForm作为方法入参,FileActionForm是Web层的表单数据对象,它封装了提交表单的数据。将...

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    Java web 期末大作业,完成度100%附带文档.

    本次项目主要以本学期所学内容为基础,采用servlet+jsp+jdbc的技术以及mvc模式进行项目开发,本次开发的内容主要以实现CRUD核心功能为主的教务管理系统,分为学生端和教师端,前端采用jquery进行数据传输以及处理,...

    基于J2EE的在线考试系统构建探讨

    在Web层,利用servlet的文件上传下载技术,将读出的word文件下载到本地磁盘。 在业务层,获得数据库连接,并取出word题目,word题是以二进制流的方式将word文件存贮在数据库。 在EIS层,对应的是数据库中word表格...

Global site tag (gtag.js) - Google Analytics