一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java進階之FileUpload完成上傳的實例

Java進階之FileUpload完成上傳的實例

2021-01-09 14:25不知不覺已變淡 Java教程

這篇文章主要介紹了 Java進階之FileUpload完成上傳的實例的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下

 Java進階之FileUpload完成上傳的實例

   FileUpload是Apache commons下面的一個子項目,用來實現Java項目下的文件上傳功能,常見的文件上傳還有SmartUpload,Servlet3.0,Struts2。

     在這里我用的是commons- fileupload-1.2.1,下面就是一個簡單實例,解析過程都寫到代碼中的注釋上了,注釋很詳細

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//創建磁盤文件項工廠
      DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory();
      //設置緩沖區的大小,如果文件的大小超過了緩沖區的大小,就會產生臨時文件
      diskFileItemFactory.setSizeThreshold(1024*1024*3);
      //獲得核心解析類
      ServletFileUpload fileUpload=new ServletFileUpload(diskFileItemFactory);
      //解決中文文件名上傳亂碼
      fileUpload.setHeaderEncoding("UTF-8");
      //解析request,返回list集合
      List<FileItem> list = fileUpload.parseRequest(request);
      //獲得每個部分,將遍歷的值存入到一個map集合中
      Map<String, String> map=new HashMap<>();
      //設置上傳文件的文件名
      String fileName=null;
      for (FileItem fileItem : list) {
        //判斷普通項和文件上傳項
        if (fileItem.isFormField()) {
          //普通項
          String name=fileItem.getFieldName();
          String value=fileItem.getString("UTF-8");
          map.put(name, value);
        }else {
          //文件上傳項
          //獲得文件名
          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工廠創建新的文件項目。這個給了組件FileUpload很大的靈活性。這個工廠擁有怎樣創建項目的最終控制權。工廠執行過程中上傳項目文件的臨時數據可以存儲在內存中或硬盤上。這個依賴于上傳項目的大小(即:數據的字節)。不過這種行為可以在你的應用程序中適當的自定制。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

原文鏈接:http://blog.csdn.net/kdc18333608478/article/details/52664720

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人网欧美亚洲影视图片 | 美女无内裤下部黄 | 欧美video丝袜连裤袜bd | 久久精品AV一区二区无码 | 欧洲网色偷偷亚洲男人的天堂 | 91麻豆精品国产91久久久 | 91精品国产色综合久久不卡蜜 | 操大姨子逼 | 亚洲精品老司机福利在线播放 | 亚洲国产精品嫩草影院永久 | 性欧美videosex18嫩 | 69日本xxⅹxxxxx19| 日本大尺度激情做爰叫床 | 91免费精品国自产拍在线可以看 | 国产99在线 | 五月天在线视频观看 | 国产老太婆hd老头 | 亚洲精品中文字幕第一区 | 亚洲看片lutube在线入口 | 久久91精品国产91久 | 欧美a级完整在线观看 | 韩国办公室激情 | 好逼天天有 | 乌克兰一级片 | 欧美高清片 | hh99me福利毛片 | 久久中文字幕综合不卡一二区 | 热久久99精品这里有精品 | 国产精品原创视频 | 日本乱人伦中文在线播放 | 亚洲日韩男人网在线 | 亚洲 日韩 自拍 视频一区 | 欧美色图亚洲天堂 | 午夜理论电影在线观看亚洲 | 久久久久嫩草影院精品 | 1024国产看片在线观看 | 大陆黄色片 | 91视频a| 激情小视频网站 | 国产香蕉一区二区在线观看 | beeg日本高清xxxx18 |