当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

Struts2文件上传(一) Common-FileUpload[Java编程]

赞助商链接



  本文“Struts2文件上传(一) Common-FileUpload[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

文件上传是很多项目都碰到的需求,Struts2中也带有文件上传功效,但它是操纵的java范畴的其他 俩个常用的文件上传的项目:Common- FileUpload和COS,在理解Struts2之前让我们理解下怎样利用 Common-FileUpload来实现文件上传以及文件上传实现历程中应当注意的问题.

在Common- FileUpload中,它把从客户端提交过来的表单封装成一个个FileItem对象,这也是它实现文件上传功效 的核心类.另一个很重要的类就是FileUploadBase,他的功效就是解析恳求(request),如举行上传文 件大小考证,恳求范例考证(文件上传的enctype要设置成multipart/form-data)等.我们常常用到它 的子类ServletFileUpload.在FileUploadBase解析 request的历程中会将文件保存到内存,假如文件大 小大于我们设置的缓存的大小,它将把文件的其他内容保存到一个暂时目录,当我们对FileItem 对象实 现正真上传时会从内存区或暂时目录将文件保存到正真的上传目录.而我们要做的就是举行简单的配置 ,可以用很少的代码便可以实现文件上传,而不用直接与IO流打交道.首先将文件上传历程中应注意的 地方理解下:

1.request恳求的办法一定如果POST:method="post"

2.request恳求的范例 一定如果multipart/form-data: enctype="multipart/form-data"

3.在对DiskFileItemFacotry 设置历程中repository参数代表文件保存的暂时目录,假如不设置,系统将以System.getProperty ("java.io.tmpdir")代表的目录作为暂时目录.

4.DiskFileItemFacotry中的sizeThreshold参数 代表保存到内存的大小,假如当个上传文件的大小小于这个值,则这个文件会暂时保存到内存中.假如 大于这个值,则多的部份会保存到暂时目录中.单位为B.

5.ServletFileUpload中的sizeMax参 数是代表上传文件的总大小,单位为B

6.要对FileItem举行上传操作,首先要判断isFormField() 为false,因为系统将每个表单项解析成一个FileItem,这此中也包含不是文件上传的表单项.所以要判 断能否为文件上传表单项.

下面用Servlet简单的实现文件上传:

upload.jsp

Java代码

<body>
<form method="post"  id="uploadForm" action="UploadServlet" enctype="multipart/form-data" >
<table  style="border: 1px solid;" align="center">
<thead>
<tr>
<td style="text-align: center" colspan="2">文件上传</td>
</tr>
</thead>
<tbody>
<tr>
<td>用户 名:</td>
<td><input type="text"  name="user.username"></input></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text"  name="user.password"></input></td>
</tr>
<tr>
<td colspan="2">
<input type="file" name="file1"/>
</td>
</tr>
<tr>
<td colspan="2">
<input  type="file" name="file2"/>
</td>
</tr>
<tr>
<td colspan="2">
<input type="file" name="file3"/>
</td>
</tr>
<tr>
<td><input type="button"  value="Login" id="upload"/></td>
<td><input type="button"  value="Cancel" id="cancelUpload"/></td>
</tr>
</tbody>
</table>
</form>
</body>

UploadServlet

Java代码

protected void  doPost(HttpServletRequest request,
HttpServletResponse response) throws  ServletException, IOException {
try {
DiskFileItemFactory factory = new  DiskFileItemFactory();
// 设置暂时缓存大小,文件大于这个值的部份保存到暂时目录
factory.setSizeThreshold(1024 * 128);
//设置文件保存暂时目录
factory.setRepository(new File(
"C:\\Documents and Settings\\bond\\temp"));
ServletFileUpload upload = new ServletFileUpload(factory);
// 设置上传内容大小
upload.setSizeMax(1024 * 1024*512);

List fileItems =  upload.parseRequest(request);
for (FileItem fi : fileItems) {
if (! fi.isFormField()) {
fi
.write(new File("D:\\bond\\upload", fi
.getName ()));
}
}
request.getRequestDispatcher("success.jsp").forward(request,
response);
} catch (Exception e) {
e.printStackTrace();
request.getRequestDispatcher("failure.jsp").forward(request,
response);
}


  以上是“Struts2文件上传(一) Common-FileUpload[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 在Google App Engine中操纵Struts2框架
  • 关于Struts和Spring两种MVC框架的比较
  • <b>Struts2文件上传</b>
  • 让Struts与Hibernate顺利协同工作
  • Hibernate+Spring+Struts扩大Struts
  • J2EE底子 用Struts框架开辟MVC系统步骤
  • <b>J2EE底子:Struts框架初学者从这里入门</b>
  • struts2整合tiles及配置
  • Struts2.0深化学习 命名空间,模子驱动,表单反复提交
  • 操纵Struts 2开辟RESTful服务
  • Struts2输入校验(一) validate办法-validateXxx办法
  • Struts2输入校验(二) 考据框架
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .