最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSP組件commons-fileupload實現(xiàn)文件上傳

 更新時間:2021年09月01日 15:32:56   投稿:lijiao  
這篇文章主要為大家詳細介紹了JSP組件commons-fileupload實現(xiàn)文件上傳,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了JSP使用commons-fileupload實現(xiàn)文件上傳代碼,供大家參考,具體內(nèi)容如下

1、準(zhǔn)備:

將commons-fileupload-1.1.zip和commons-io-1.1.zip復(fù)制到"\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("請求內(nèi)容的長度為:"+request.getContentLength());
 out.println("請求內(nèi)容的類型為:"+request.getContentType());
 
 DiskFileItemFactory factory=new DiskFileItemFactory();
 factory.setRepository(tempPath);
 factory.setSizeThreshold(4096);
 
 ServletFileUpload upload=new ServletFileUpload(factory);
 upload.setSizeMax(1000000);
 List<?> fileitems=null;
 try{
  fileitems=upload.parseRequest(request);
  Iterator<?> iterator=fileitems.iterator();
  String regex=".+\\\\(.+)$";
  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處理上傳請求

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • jsp連接數(shù)據(jù)庫大全

    jsp連接數(shù)據(jù)庫大全

    jsp連接數(shù)據(jù)庫大全...
    2006-10-10
  • 淺析Java中Data類的應(yīng)用

    淺析Java中Data類的應(yīng)用

    淺析Java中Data類的應(yīng)用...
    2006-10-10
  • Js實現(xiàn)Base64編碼與解碼

    Js實現(xiàn)Base64編碼與解碼

    Base64其實是一種簡單的置換加密方式,但是BASE64的用處往往并不是為了防止信息泄露,而且為了方便傳輸,想要了解Base64編碼、解碼的童鞋可以進來了解一下。
    2016-10-10
  • JSP向后臺傳遞參數(shù)的四種方式總結(jié)

    JSP向后臺傳遞參數(shù)的四種方式總結(jié)

    下面小編就為大家?guī)硪黄狫SP向后臺傳遞參數(shù)的四種方式總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • JSP對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼的兩種方式

    JSP對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼的兩種方式

    使用JSP操作中文時,經(jīng)常會出現(xiàn)一些亂碼問題。這里,我們只談一下對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼時的編碼方式。眾所周知,要對瀏覽器發(fā)送來的數(shù)據(jù)進行重新編碼,只需要一個語句就可以了,很簡單
    2013-09-09
  • JSP 動態(tài)樹的實現(xiàn)

    JSP 動態(tài)樹的實現(xiàn)

    在實際的項目開發(fā)中有很多是有用到動態(tài)樹,所謂的動態(tài)樹就是可以支持無限級子節(jié)點。今天我就去給大家實際演示一下動態(tài)樹如何實現(xiàn)。
    2009-04-04
  • 通過spring用beanshell實現(xiàn)java接口示例

    通過spring用beanshell實現(xiàn)java接口示例

    這篇文章主要介紹了通過spring用beanshell實現(xiàn)java接口示例,需要的朋友可以參考下
    2014-03-03
  • 詳解Spring的核心機制依賴注入

    詳解Spring的核心機制依賴注入

    這篇文章主要介紹了詳解Spring的核心機制依賴注入的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Spring AOP代理詳細介紹

    Spring AOP代理詳細介紹

    這篇文章主要介紹了Spring AOP代理詳細介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • jsp學(xué)習(xí)之scriptlet的使用方法詳解

    jsp學(xué)習(xí)之scriptlet的使用方法詳解

    這篇文章主要介紹了jsp學(xué)習(xí)之scriptlet的使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

广平县| 集安市| 奉节县| 肥东县| 高陵县| 德江县| 韶山市| 甘孜县| 雷波县| 玛多县| 册亨县| 太和县| 临西县| 澎湖县| 吴桥县| 日照市| 醴陵市| 昂仁县| 定陶县| 塔城市| 庆元县| 玉山县| 濮阳市| 民乐县| 亳州市| 瑞金市| 焦作市| 安阳市| 巫山县| 中超| 通海县| 茂名市| 临海市| 呼和浩特市| 卢龙县| 孟津县| 莲花县| 大城县| 肇源县| 蒙山县| 师宗县|