灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3715回复:0

原创:Jsp文件上传编程

楼主#
更多 发布于:2011-12-14 13:25
java web应用程序中,文件上传是常规的操作,文件上传指的是通过浏览器把用户本地的文件上传到Web服务器端。
        本文只是简单的介绍一下如何利用java语言编程进行文件上传,文章以COS组建为例。COS组建中封装了比较丰富的类,可以供程序员调用,本文调用的类是MultipartRequest。
        COS是O’Reilly的文件上传组件,上传性能非常优越,COS上传操作可以使用Servlet或者Struts的Action在服务器端进行操作。

*******************************************************

Jsp页面的编写:
要进行文件上传,必定是从一个页面进行提交,转而由相应的业务处理模块进行处理。
注意:文件上传要求客户端必须用Post方式提交数据,并且在form标签的enctype属性值必须为:"multipart/form-data",表示本次请求可以上传文件。

<form name="fileUpload" method="post"action="${pageContext.request.contextPath }/servlet/UploadFileServlet" enctype="multipart/form-data">
文件:<input type="file" name="file" /><br> //type类型必须为file类型
描述:<input type="text" name="test"><br> //非文件类型,本例中为text类型
<input type="submit" value="上传">
</form>


*******************************************************
com.oreilly.servlet.MultipartRequest
该类完成封装了文件上传操作以及提供了很多对表单中非文件元素的操作。
在MultipartRequest类中,getParameter(java.lang.String name)方法可以获取表单中参数值。

/**
* param: saveDir是文件所要上传的路径,请不要将upload目录放在WEB-INF目录下
* param: maxPostSize 上传文件最大限制
* param: encoding 编码格式,在此为GBK
* author: tsface
*/
 


MultipartRequest multRequest = null;
String saveDir =this.getServletContext().getRealPath("/upload/");
int maxPostSize = 100 * 1024 * 1024;// 1MB
String encoding = "GBK";

multRequest = new MultipartRequest(request, saveDir,maxPostSize,encoding,new myPolicy());           //myPolicy()方法是命名策略


String test =multRequest.getParameter("test"); //得到文本参数
UploadFile uf=new UploadFile();

uf.setTest(test);
uf.setFile(myPolicy.PATHNAME);                                //在数据库中保存了文件的名称,因为PATHNAME是静态变量,所以用类名调用
UploadFileDao ufDao=new UploadFileDao();
try
{
     ufDao.addFile(uf);                                       //将文件添加到数据库中
}
catch (SQLException e)
{
     e.printStackTrace();
}
response.sendRedirect(request.getContextPath()+"/FIleServlet.do");


注意:该段代码就是doPost方法中的代码


喜欢0 评分0
游客

返回顶部