利用apache-commons-fileupload写jsp上传文件

转载 2004年08月04日 16:54:00
需要下载fileupload和beanutils两个包,代码如下。
<%@ page language="java" contentType="text/html;charset=gb2312"%>

<%@ page import="java.util.*"%>

<%@ page import="java.io.*"%>

<%@ page import="org.apache.commons.fileupload.*"%>

<%!
String Mkdir(String path) {

    String msg=null;
    java.io.File dir;

    // 新建文件对象
    dir =new java.io.File(path);
    if (dir == null) {
        msg = "错误原因:<BR>对不起,不能创建空目录!";
        return msg;
    }
    if (dir.isFile()) {
        msg = "错误原因:<BR>已有同名文件<B>" + dir.getAbsolutePath() + "</B>存在。";
        return msg;
    }
    if (!dir.exists()) {
        boolean result = dir.mkdirs();
        if (result == false) {
            msg = "错误原因:<BR>目录<b>" + dir.getAbsolutePath() + "</B>创建失败,原因不明!";
            return msg;
        }
        // 如果成功创建目录,则无输出。
        // msg ="成功创建目录: <B>" + dir.getAbsolutePath() + "</B>";
        return msg;
    }else {
    //    msg = "错误原因:<BR>目录<b>" + dir.getAbsolutePath() + "</b>已存在。";
    }
    return msg;
}
String getCurDate(){
    GregorianCalendar gcDate = new GregorianCalendar(); 
    int year  = gcDate.get(GregorianCalendar.YEAR);
    int month = gcDate.get(GregorianCalendar.MONTH);
    int day   = gcDate.get(GregorianCalendar.DAY_OF_MONTH);
    return ""+year+month+day;
}
%> 
<%
 String msg ="";
 String img=null;

 DiskFileUpload fu = new DiskFileUpload();
 // 设置允许用户上传文件大小,单位:字节
 fu.setSizeMax(10000000);
 // maximum size that will be stored in memory?
 // 设置最多只允许在内存中存储的数据,单位:字节
 fu.setSizeThreshold(4096);
 // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
 fu.setRepositoryPath("/tmp");
 //开始读取上传信息

 List fileItems = fu.parseRequest(request);

 // 依次处理每个上传的文件
 Iterator iter = fileItems.iterator();
 String updir="/dbweb/upics/";
 String updir2="/upics/";
 String curdate=getCurDate();
 String filepath = getServletContext().getRealPath(updir2)+"/"+curdate;//<---好象在tomcat下getrealpath有点问题
 String opmsg = Mkdir(filepath);
 if( opmsg == null) {

 while (iter.hasNext()) {
  FileItem item = (FileItem) iter.next();
  //忽略其他不是文件域的所有表单信息
  if (!item.isFormField()) {
   String name = item.getName();
   long size = item.getSize();
   if((name==null||name.equals("")) && size==0)
   continue;
    // 注意item.getName()
    // 会返回上载文件在客户端的完整路径名称,这似乎是一个BUG。
    // 为解决这个问题,这里使用了fullFile.getName()。
    name=name.replace('//','/');
    File fullFile = new File(name); 

    File savedFile = new File(filepath,fullFile.getName());
    item.write(savedFile);
    msg="<img alt='"+fullFile.getName()+"' src='"+updir+curdate+"/"+fullFile.getName()+"' />";
    img="<img alt='"+fullFile.getName()+"' src='"+updir+curdate+"/"+fullFile.getName()+"' />";
  }
 }
}//opmsg=null
%>


参考文献:
1、用fileupload处理文件上传
作者:◇ 刘冬 发文时间:2003.07.09 15:52:43 ,http://tech.ccidnet.com/pub/disp/Article?columnID=322&articleID=53966&pageNO=1
讲得非常清楚
2、Jakarta Commons:巧用类和组件1 (2) 作者:Vikram Goyal 仙人掌工作室译 ,http://www.uml.org.cn/j2ee/j2eeh2.htm

3、Jsp如何实现网页的重定向 ,2002-05-16· ·包路跃··Yesky,http://www.yesky.com/SoftChannel/72342371945283584/20020424/1608521.shtml

4、判断文件或文件夹是否存在,作者:罗会涛,http://www.fawcette.com/china/XmlFile.aspx?ID=205

5、java.util中的Date类,By Wing, 出处:处处,http://www.linuxaid.com.cn/articles/1/1/119413536.shtml

6、计算Java日期--学习怎样创建和使用日期,作者:Robert Nielsen ,http://www.javaresearch.org/article/showarticle.jsp?column=1&thread=497

jsp利用smartLoad实现上传下载

1.在填写表单时需要进行日期、数字等校验,这可以用jQuery easyUI来实现,非常方便。 使用jquery easyui时需导入类似jquery-easyui-1.3.1的包,然后在jsp页面...
  • lixin3273110c
  • lixin3273110c
  • 2013年10月09日 22:30
  • 1862

文件上传漏洞常见利用方式分析

原理 文件上传是Web应用中经常出现的功能,它允许用户上传文件到服务器并保存到特定位置。这对安全来说是一个很敏感的问题,一旦恶意程序被上传到服务器并获得执行权限,后果将不堪设想。因此绝大多数的W...
  • yes_angel
  • yes_angel
  • 2016年06月11日 10:06
  • 2832

JSP实现上传文件的两种方法

Demo注意事项:cos.jar,uploadbean.jar,filemover.jar这几个包必须有。 下载地址: http://download.csdn.net/detail/sinat_34...
  • sinat_34803353
  • sinat_34803353
  • 2016年11月21日 00:54
  • 12881

JSP 实用程序之简易文件上传组件

文件上传,包括但不限于图片上传,是 Web 开发中司空见惯的场景,相信各位或多或少都曾写过这方面相关的代码。Java 界若说文件上传,则言必称 Apache Commons FileUpload,论必...
  • zhangxin09
  • zhangxin09
  • 2016年05月31日 10:37
  • 5364

jsp 上传Excel文件

通过使用jspsmartupload.jar工具包,来通过jsp上传Excel文件。
  • selaginella
  • selaginella
  • 2014年11月18日 16:15
  • 3380

JSP 文件上传下载系列之一[基本方式上传文件]

在jsp的web项目中,很有可能会使用文件上传的功能。 把一个本地的文件上传到web 服务器的某个路径下。 对于java 来说, 实现这样功能的开源组件有很多, 比如较常用的commons-fil...
  • oscar999
  • oscar999
  • 2013年08月07日 18:50
  • 2738

文章标题 使用ajaxFileupload+struts2完成文件的上传以及回显到jsp的链接地址

积累点滴,从这一刻开始 jsp页面部分 第一步: jsp页面导入 ajaxfileupload.js文件 第二步:编写上传文件的文本框: 第三步: struts2后台部...
  • oppolol9527
  • oppolol9527
  • 2016年05月10日 23:17
  • 830

Jsp 使用 fileupload 文件上传和下载

前言Jsp文件上传的目前主要有两个常用的: 1、SmartUpload 2、Apache Commons fileupload我在期末的 Jsp大作业 使用到文件上传模块,使用了第二个 Apach...
  • plain_maple
  • plain_maple
  • 2016年12月01日 22:09
  • 4157

Jsp 实现文件上传下载

JavaWeb学习总结——文件上传和下载 在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天上课老师讲了文件上传和下载功能的实现,为了便于以后使用做个总结。对于文件上传,浏览器在上传...
  • sxc1414749109
  • sxc1414749109
  • 2017年05月08日 22:03
  • 560

servlet+jsp实现的文件上传与下载

java文件上传与下载      通过微表单元苏设置Method = "post"      enctype = "multipart/form-data"属性,让表单提交的数据以二进制编码的方式...
  • wojiaohuangyu
  • wojiaohuangyu
  • 2016年03月21日 14:51
  • 7360
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用apache-commons-fileupload写jsp上传文件
举报原因:
原因补充:

(最多只允许输入30个字)