Servlet上传文件详细解析以及注意事项_第1页
Servlet上传文件详细解析以及注意事项_第2页
Servlet上传文件详细解析以及注意事项_第3页
Servlet上传文件详细解析以及注意事项_第4页
Servlet上传文件详细解析以及注意事项_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Servlet上传文件详细解析以及注意事项本文主要介绍了 Servlet上传文件详细解析以及注意事项,分别用两个阶段来进行详细讲解。 准备阶段,下载需要的包:在Servlet中进行文件上传需要用到外部的类库,apache提供了这些类库,主要需要com mon s-fileupload.jar 禾口 com mon s-io.jar下载的步骤如下:进入 网站,在 Projects 下找至U commons 点击进入找至UComponents下的FileUpload,点击进入就可以找到下载页面如下:UocumentationThe following document

2、ation is available:* User Guidfi* Streaming API* Frequently Ased Questions阳Dtx API卩oicct RtHJortGrou can also browse the Subversion repository.* Download the binary and source distribut ons from a mirroi site here 於FileUpload 1.2.1 - 18 January 2008 Download the binary and source distribut ons from

3、a mirror site h赴赴 可以看到这里有开发指南和下载地址,如果要详细学习,慢慢看这里的资源就可以了。com mon s-io.jar 包的下载地址:/fileupload/dependencies.html把两个jar包放到WEB-INF的lib目录下。开发阶段:上传页面:index.jsp1. 2. 6.7. 8. 9. 10.base href=11.12. 文件上传 6.keywordscontent= keyword1,keyword2,keyword317.18.!-19.20.-21. 22.23. 2

4、4.25.文件别名:26.选择文件:27.28.29. 30. 31. 这里注意第 24 行,上传文件时要指定提交方法 method=post, 信息类型为 enctype=multipart/form-data上传功能 servlet:FileUpload1.packagecom.sunflower.servlet;2.3.importjava.io.File;4.importjava.io.IOException;5.importjava.util.Iterator;6.importjava.util.List;9.20.

5、5.46.47.import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import mons.fileupload.FileItem;import

6、 mons.fileupload.FileItemFactory;import mons.fileupload.FileUploadException;import mons.fileupload.disk.DiskFileItemFactory;import mons.fileupload.servlet.ServletFileUpload;public class FileUpload extends HttpServlet protected void doPost(HttpS

7、ervletRequest req, HttpServletRespons e resp)throws ServletException, IOException req.setCharacterEncoding( UTF-8 );fileControl(req, resp);/* 上传文件的处理*/private void fileControl(HttpServletRequest req, HttpServletResp onse resp) throws ServletException / 在解析请求之前先判断请求类型是否为文件上传类型 boolean isMultipart = S

8、ervletFileUpload.isMultipartContent(req);/ 文件上传处理工厂FileItemFactory factory =new DiskFileItemFactory();/ 创建文件上传处理器ServletFileUpload upload = new ServletFileUpload(factory);/ 开始解析请求信息List items = null ;try items = upload.parseRequest(req);catch (FileUploadException e) e.printStackTrace();48./ 对所有请求信息进

9、行判断49.Iterator iter = items.iterator();50.while (iter.hasNext() 51.FileItem item = (FileItem) iter.next();52./ 信息为普通的格式53.if (item.isFormField() 54.String fieldName = item.getFieldName();55.String value = item.getString();56.req.setAttribute(fieldName, value);57.58./ 信息为文件格式59.else 60.String fileNam

10、e = item.getName();61.int index = fileName.lastIndexOf( );62.fileName = fileName.substring(index +163.req.setAttribute( realFileName, fileName);64.65./ 将文件写入66./String path = req.getContextPath();67./String directory = uploadFile;68./String basePath = req.getScheme() + :/ + req.getServerName() + : +

11、 req.getServerPort() + path + / + directory;69.String basePath = req.getRealPath(/uploadFile );70.File file = newFile(basePath, fileName);71.try 72.item.write(file);73.74.catch (Exception e) 75.e.printStackTrace();9.80.try 81.req.getRequestDispatcher(/uploadsuccess.jsp ).forward(req, resp)

12、;82.83.catch (IOException e) 84.e.printStackTrace();85.86.这里要注意第6668行,将文件上传到 Web项目的uploadFile文件夹中,如果用这种方法得到的路径是 http:/localhost:8080/upload/uploadFile,而创建 File 类用的路径是绝对路径,这样就会出问题,所以这里要用的是得到真实路径的方法 HttpServletRequest.getRealPath().以上是最简单的文件上传,如果要加入上传的限制可以在 DiskFileItemFactory 和 ServletFileUpload 中进行限制 :在 34 行后加入:1. / 创建临时文件目录2. File tempFile =new File(req.getRealPath( /temp );3. / 设置缓存大小4. (DiskFileItemFactory) factory).setSizeThreshold(1024 *1024 );5. / 设置临时文件存放地点6. (DiskFileItemFactory) factory).setRepository(tempFile)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论