本文实例为大家分享了JSP使用commons-fileupload实现文件上传代码,供大家参考,具体内容如下
1、准备:
将commons-fileupload-1.1.zip和commons-io-1.1.zip复制到"\WEB-INF\lib"目录下
2、首先是Servlet:FileUpload.java
package servlet; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.*; import java.util.regex.Pattern; import java.util.regex.Matcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUpload extends HttpServlet { private String uploadPath="E:\\addnetFile\\";//要上传文件的目录 private File tempPath=new File("E:\\tempFile\\");//存放上传的文件的目录 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=GB2312"); response.setCharacterEncoding("gb2312"); PrintWriter out=response.getWriter(); out.println("请求内容的长度为:"+request.getContentLength()); out.println("请求内容的类型为:"+request.getContentType()); DiskFileItemFactory factory=new DiskFileItemFactory(); factory.setRepository(tempPath); factory.setSizeThreshold(4096); ServletFileUpload upload=new ServletFileUpload(factory); upload.setSizeMax(1000000); List<".+\\\\(.+)$"; String[] errortype={".exe",".com",".cgi",".asp"}; Pattern p=Pattern.compile(regex); while(iterator.hasNext()){ FileItem item=(FileItem) iterator.next(); if(!item.isFormField()){ String name=item.getName(); long size=item.getSize(); if(name==null||name.equals("")&&size==0) continue; Matcher m=p.matcher(name); if(m.find()){ for(int temp=0;temp<errortype.length;temp++){ if(m.group(1).endsWith(errortype[temp])) throw new IOException(name+":wrong type"); } try{ item.write(new File(tempPath,m.group(1))); out.println(name+" "+size+"<br/>"); out.println("上传成功"); }catch(Exception e){ out.println("333"+e); } } else{ throw new IOException("fail to upload"); } } } }catch(IOException e){ out.println("222"+e); } catch(FileUploadException e1){ e1.printStackTrace(); out.println("111"+e1); } } public void init() throws ServletException { if(!new File(uploadPath).isDirectory()) new File(uploadPath).mkdir(); if(!tempPath.isDirectory()) tempPath.mkdir(); } public void destroy(){ super.destroy(); } }
3、其次是html:Uploadfile.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Uploadfilel.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <form action="/Firstjsp/servlet/FileUpload" method="post" enctype="multipart/form-data" name="form1"> <input type="file" name="file"/> <input type="submit" name="submit" value="upload"/> </form> <form action="/Firstjsp/servlet/FileUpload" method="post" enctype="multipart/form-data" name="uploadform"> <table> <tr> <td> 文件1:<input type="file" name="X" size="40"/> </td> </tr> <tr> <td> 文件2:<input type="file" name="Y" size="40"/> </td> </tr> <tr> <td> 文件3:<input type="file" name="Z" size="40"/> </td> </tr> </table> <input type="submit" name="upload" value="开始上传"/> </form> </body> </html>
4、最后是配置web.xml
<servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>FileUpload</servlet-name> <servlet-class>servlet.FileUpload</servlet-class> </servlet> <servlet-mapping> <servlet-name>FileUpload</servlet-name> <url-pattern>/servlet/FileUpload</url-pattern>
首先运行html,servlet处理上传请求
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“JSP组件commons-fileupload实现文件上传”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。