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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。