欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java進(jìn)階之FileUpload完成上傳的實(shí)例

 更新時(shí)間:2017年09月23日 13:12:38   作者:不知不覺(jué)已變淡  
這篇文章主要介紹了 Java進(jìn)階之FileUpload完成上傳的實(shí)例的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下

 Java進(jìn)階之FileUpload完成上傳的實(shí)例

   FileUpload是Apache commons下面的一個(gè)子項(xiàng)目,用來(lái)實(shí)現(xiàn)Java項(xiàng)目下的文件上傳功能,常見(jiàn)的文件上傳還有SmartUpload,Servlet3.0,Struts2。

     在這里我用的是commons- fileupload-1.2.1,下面就是一個(gè)簡(jiǎn)單實(shí)例,解析過(guò)程都寫(xiě)到代碼中的注釋上了,注釋很詳細(xì)

//創(chuàng)建磁盤(pán)文件項(xiàng)工廠 
      DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); 
      //設(shè)置緩沖區(qū)的大小,如果文件的大小超過(guò)了緩沖區(qū)的大小,就會(huì)產(chǎn)生臨時(shí)文件 
      diskFileItemFactory.setSizeThreshold(1024*1024*3); 
      //獲得核心解析類 
      ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory); 
      //解決中文文件名上傳亂碼 
      fileUpload.setHeaderEncoding("UTF-8"); 
      //解析request,返回list集合 
      List<FileItem> list = fileUpload.parseRequest(request); 
      //獲得每個(gè)部分,將遍歷的值存入到一個(gè)map集合中 
      Map<String, String> map=new HashMap<>(); 
      //設(shè)置上傳文件的文件名 
      String fileName=null; 
      for (FileItem fileItem : list) { 
        //判斷普通項(xiàng)和文件上傳項(xiàng) 
        if (fileItem.isFormField()) { 
          //普通項(xiàng) 
          String name=fileItem.getFieldName(); 
          String value=fileItem.getString("UTF-8"); 
          map.put(name, value); 
        }else { 
          //文件上傳項(xiàng) 
          //獲得文件名 
          fileName=fileItem.getName(); 
          //獲得文件的輸入流 
          InputStream is=fileItem.getInputStream(); 
          //獲得文件上傳的路徑 
          String path=this.getServletContext().getRealPath("/products/1"); 
          OutputStream os=new FileOutputStream(path+"/"+fileName); 
          int len=0; 
          byte[] b=new byte[1024]; 
           
          while ((len=is.read(b))!=-1) { 
            os.write(b, 0, len); 
          } 
          is.close(); 
          os.close(); 
        } 

     組件FileUpload使用FileItemFactory工廠創(chuàng)建新的文件項(xiàng)目。這個(gè)給了組件FileUpload很大的靈活性。這個(gè)工廠擁有怎樣創(chuàng)建項(xiàng)目的最終控制權(quán)。工廠執(zhí)行過(guò)程中上傳項(xiàng)目文件的臨時(shí)數(shù)據(jù)可以存儲(chǔ)在內(nèi)存中或硬盤(pán)上。這個(gè)依賴于上傳項(xiàng)目的大小(即:數(shù)據(jù)的字節(jié))。不過(guò)這種行為可以在你的應(yīng)用程序中適當(dāng)?shù)淖远ㄖ啤?br />

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Spring bean不被GC的真正原因及分析

    Spring bean不被GC的真正原因及分析

    這篇文章主要介紹了Spring bean不被GC的真正原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • springcloud 服務(wù)降級(jí)的實(shí)現(xiàn)方法

    springcloud 服務(wù)降級(jí)的實(shí)現(xiàn)方法

    這篇文章主要介紹了springcloud 服務(wù)降級(jí)的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java求三個(gè)數(shù)的最大值的示例分享

    java求三個(gè)數(shù)的最大值的示例分享

    這篇文章主要介紹了java求三個(gè)數(shù)的最大值的示例分享,需要的朋友可以參考下
    2014-03-03
  • java中數(shù)組的定義及使用方法(推薦)

    java中數(shù)組的定義及使用方法(推薦)

    下面小編就為大家?guī)?lái)一篇java中數(shù)組的定義及使用方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • springCloud服務(wù)注冊(cè)Eureka實(shí)現(xiàn)過(guò)程圖解

    springCloud服務(wù)注冊(cè)Eureka實(shí)現(xiàn)過(guò)程圖解

    這篇文章主要介紹了springCloud服務(wù)注冊(cè)Eureka實(shí)現(xiàn)過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • maven中deploy命令報(bào)401錯(cuò)誤的原因及解決方案

    maven中deploy命令報(bào)401錯(cuò)誤的原因及解決方案

    在mac版idea使用過(guò)程中有時(shí)候會(huì)出現(xiàn)deploy時(shí)候報(bào)401錯(cuò)誤,所以本文給大家介紹了maven 中deploy命令報(bào)401錯(cuò)誤的原因及解決方案,文章通過(guò)圖文結(jié)合的方式講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • Springboot2.6.x的啟動(dòng)流程與自動(dòng)配置詳解

    Springboot2.6.x的啟動(dòng)流程與自動(dòng)配置詳解

    這篇文章主要給大家介紹了關(guān)于Springboot2.6.x的啟動(dòng)流程與自動(dòng)配置的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Java中的強(qiáng)引用,軟引用,弱引用,虛引用的作用介紹

    Java中的強(qiáng)引用,軟引用,弱引用,虛引用的作用介紹

    這篇文章主要介紹了Java中的強(qiáng)引用,軟引用,弱引用,虛引用的作用,下文內(nèi)容具有一定的知識(shí)參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-02-02
  • Spring MVC 處理Ajax請(qǐng)求的方式詳解

    Spring MVC 處理Ajax請(qǐng)求的方式詳解

    本文介紹了在SpringMVC中處理Ajax請(qǐng)求的方法,主要依賴于Controller和返回類型的配置,使用@RequestMapping注解處理Ajax的控制器方法,本文給大家介紹Spring MVC 處理Ajax請(qǐng)求的方式,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • IDEA利用自帶Axis工具和wsdl文件反向生成服務(wù)端客戶端代碼圖文詳解

    IDEA利用自帶Axis工具和wsdl文件反向生成服務(wù)端客戶端代碼圖文詳解

    這篇文章主要介紹了IDEA利用自帶Axis工具和wsdl文件反向生成服務(wù)端客戶端代碼詳細(xì)流程,在這里小編使用的是idea2021.1最新開(kāi)發(fā)工具,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-05-05

最新評(píng)論