Java实现文件上传至服务器的方法
在我们的web开发中,很多的时候都需要把本机的一些文件上传到web服务器上面去。
如:一个BBS系统,当用户使用这是系统的时候,能把本机的一些图片,文档上传到服务器上面去。然后其他用户可以去下载这些文件,那么这样的话,我们可以自己编程实现文件的上传
但是更好的方式是使用一些已有的组件帮助我们实现这种上传功能。
常用的上传组件:
Apache的CommonsFileUpload
JavaZoom的UploadBean
jspSmartUpload
upload.jsp
代码;
<%@pagelanguage="java"contentType="text/html;charset=UTF-8"%>usingcommonsUploadtouploadfile 请您选择需要上传的文件 上传人: 上传文件:
FileUploadServlet.java代码:
/** * */ packagecom.b510.example; importjava.io.File; importjava.io.IOException; importjava.util.*; importjavax.servlet.ServletConfig; importjavax.servlet.ServletContext; importjavax.servlet.ServletException; importjavax.servlet.http.HttpServlet; importjavax.servlet.http.HttpServletRequest; importjavax.servlet.http.HttpServletResponse; importorg.apache.commons.fileupload.FileItem; importorg.apache.commons.fileupload.FileUploadException; importorg.apache.commons.fileupload.disk.DiskFileItemFactory; importorg.apache.commons.fileupload.servlet.ServletFileUpload; /** * *@authorXHW * *@date2011-7-26 * */ publicclassFileUploadServletextendsHttpServlet{ privatestaticfinallongserialVersionUID=-7744625344830285257L; privateServletContextsc; privateStringsavePath; publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse) throwsServletException,IOException{ doPost(request,response); } publicvoidinit(ServletConfigconfig){ //在web.xml中设置的一个初始化参数 savePath=config.getInitParameter("savePath"); sc=config.getServletContext(); } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("UTF-8"); DiskFileItemFactoryfactory=newDiskFileItemFactory(); ServletFileUploadupload=newServletFileUpload(factory); try{ Listitems=upload.parseRequest(request); Iteratoritr=items.iterator(); while(itr.hasNext()){ FileItemitem=(FileItem)itr.next(); if(item.isFormField()){ System.out.println("表单参数名:"+item.getFieldName()+",表单参数值:"+item.getString("UTF-8")); }else{ if(item.getName()!=null&&!item.getName().equals("")){ System.out.println("上传文件的大小:"+item.getSize()); System.out.println("上传文件的类型:"+item.getContentType()); //item.getName()返回上传文件在客户端的完整路径名称 System.out.println("上传文件的名称:"+item.getName()); FiletempFile=newFile(item.getName()); //上传文件的保存路径 Filefile=newFile(sc.getRealPath("/")+savePath,tempFile.getName()); item.write(file); request.setAttribute("upload.message","上传文件成功!"); }else{ request.setAttribute("upload.message","没有选择上传文件!"); } } } }catch(FileUploadExceptione){ e.printStackTrace(); }catch(Exceptione){ e.printStackTrace(); request.setAttribute("upload.message","上传文件失败!"); } request.getRequestDispatcher("/uploadResult.jsp").forward(request,response); } }
uploadResult.jsp代码:
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>uploadResult ${requestScope['upload.message']} 上传文件
web.xml
ThisisthedescriptionofmyJ2EEcomponent ThisisthedisplaynameofmyJ2EEcomponent FileUploadServlet com.b510.example.FileUploadServlet <!--设置初始化参数-->savePath uploads FileUploadServlet /servlet/fileServlet
本文已被整理到了《Java上传操作技巧汇总》,欢迎大家学习阅读。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。