P燕 栏目编辑:梁2丽0雯E15年・—ma第il:liv6e期n一0 1@163 conr Java项目中使用Servlet实现 附件上传下载功雠 一 中国人民银行怀化市中心支行滕云 使用Java开发Web项目,经常会用到附件的上传和 </form> 下载功能,想要实现文件的上传,需要将客户端的文件 通过数据流的形式传到服务器端,服务器端接收此数 据流后,在指定的目录下建立文件,并将此数据流写入 文件。文件下载则相反,需要客户端(即web页面)读取 二.编写Upload Servlet类 接下来在服务器端编写Upload Servlet类文件,此 Java类用来在服务器端实现接收客户端传过来的数据 流,并保存到服务器上。现将实现此功能的主体代码列 出,供读者参考: private void pr0cessFileUpload(HttpSerVletRequest request,HttpServletResp0nse response)throws 服务器上指定位置的文件,服务器接收到客户端请求 后,将此文件以数据流形式发送给客户端,从而实现下 载功能。 目前Java项目中实现上传下载附件的方法有很多 种,基于不同的技术框架会有各种JAR包来实现此功 ServletException,IOException{ Di SkFileItemFa ctO r Y fa etO r y n ew 能,也有专门的组件封装了这些功能并直接供使用者使 用,但原理都离不开上文提到的实现过程。笔者以最基 DiskFilehemFaetory(); SerVletFileUpload upload=new ServletFileUpload 本的Servlet ̄Y式,向读者说明如何实现上传下载功能。 (factory); 一,前台客户端功能实现 编写上传附件时,需要在页面上建立一个form表 臌置单个文件的最大上传size upload.setFileSizeMax(10240000*3): 单,将表单的action屙l生定义为后台编写的Servlet名称, 表单中包含了_一个文件选择输入框,注意将输入框类型 type定义为file,实现代码如下: <f O r m i d=”f i l e U P l O a d F O r m” action=”UploadServlet’’enctype=”multipart/form— data'’> <table valign=’’bottom”> <tr> try{ List items=upload.parseRequest(request); //@理文件上传 f0_r(int i=0;i<items.size();i++)f FileItem item=(FileItem)items.get(i): 。 ||铼辑芟 String fileName=takeOutFileName(item.getName ()); style=’’width:450” <td><label>:上传附件:</label></td> <td><input class=”TextEditor”type=”file”id=”file”/></td> </tr> </table> //将文件改名 String ifleFormat=getFileFormat(fileName); 54 I 扯料拽崎 弋投稿邮箱:hnfc@2 lcn.net