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

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

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - JavaWeb文件上傳開發實例

JavaWeb文件上傳開發實例

2020-06-03 11:55屠龍灬世家 JAVA教程

這篇文章主要為大家詳細介紹了JavaWeb文件上傳開發實例,如何進行文件上傳操作,感興趣的小伙伴們可以參考一下

文件上傳有SmartUpload、Apache的Commons fileupload.我們今天介紹Commons fileupload的用法。 

1.commons-fileupload-1.3.1.jar
下載地址:javawebfileupload.rar

2.web.xml

?
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
40
41
42
43
<!-- 上傳文件 服務器端 -->
 <servlet>
 <servlet-name>UploadServlet</servlet-name>
 <servlet-class>com.servlet.UploadServlet</servlet-class>
 <init-param>
 <param-name>filePath</param-name><!-- 文件存儲路徑 -->
 <param-value>F:\myeclipse\Workspaces\King\WebRoot\uploadfile\</param-value>
 </init-param>
 </servlet>
 
 <servlet-mapping>
 <servlet-name>UploadServlet</servlet-name>
 <url-pattern>/servlet/UploadServlet</url-pattern>
 </servlet-mapping>
3.UploadFile.jsp
<form action="servlet/UploadServlet" method="post" enctype="multipart/form-data">
  <div align="center">
   <fieldset style="width:80%">
    <legend>上傳文件</legend><br/>
     <div align="left">上傳文件1</div>
     <div align="left">
      <input type="file" name="file1"/>
     </div>
     <div align="left">上傳文件2</div>
     <div align="left">
      <input type="file" name="file2"/>
     </div>
     <div>
      <div align='left'>上傳文件說明1</div>
      <div align='left'><input type="text" name="description1"/></div>
     </div>
     <div>
      <div align='left'>上傳文件說明2</div>
      <div align='left'><input type="text" name="description2"/></div>
     </div>
     <div>
      <div align='left'>
       <input type='submit' value="上傳文件"/>
      </div>
     </div>
   </fieldset>
  </div>
 </form>

3.servlet

?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
package com.servlet;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.List;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
 
import sun.swing.FilePane;
 
public class UploadServlet extends HttpServlet {
 
 private String filePath;
 
 
 /**
  * Destruction of the servlet. <br>
  */
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }
 
 
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
 
  response.setCharacterEncoding("UTF-8");
  response.getWriter().println("請以POST方式上傳文件");
 }
 
 
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  File file1 = null, file2 = null;
  String description1 = null, description2 = null;
  response.setCharacterEncoding("UTF-8");
  request.setCharacterEncoding("UTF-8");
  response.setContentType("text/html");
  PrintWriter out = response.getWriter();
  
  DiskFileUpload diskFileUpload = new DiskFileUpload();//解析request
  
  try {
   List<FileItem> fileList = diskFileUpload.parseRequest(request);//將結果放置到List中
   out.println("遍歷所有的FileItem...</br>");
   this.log("遍歷所有的FileItem...");
   for(FileItem fileItem : fileList){
    if(fileItem.isFormField()){//如果是文本域
     if("description1".equals(fileItem.getFieldName())){
      out.println("遍歷到description1...</br>");
      description1 = new String(fileItem.getString().getBytes(),"UTF-8");
     }
     if("description2".equals(fileItem.getFieldName())){
      out.println("遍歷到description2...</br>");
      description2 = new String(fileItem.getString().getBytes(),"UTF-8");
     }
    }else{//否則為文件域
     if("file1".equals(fileItem.getFieldName())){
      File remoteFile = new File(new String(fileItem.getName().getBytes(),"UTF-8"));
      out.println("遍歷到file1...</br>");
      out.println("客戶端文件位置:"+remoteFile.getAbsolutePath()+"</br>");
      //服務器端文件,放在uploadfile文件夾下
      file1 = new File(filePath,remoteFile.getName());
      file1.getParentFile().mkdirs();//創建文件夾路徑
      file1.createNewFile();//創建新文件
      InputStream ins = fileItem.getInputStream();//FileItem的內容
      OutputStream ous = new FileOutputStream(file1);//輸出到文件中
      try{
       byte[] buffer = new byte[1024];//字節緩存
       int len = 0;//實際緩存長度
       while((len=ins.read(buffer)) > -1){//循環讀入緩存
        ous.write(buffer,0,len);
       }
       out.println("已保存文件"+file1.getAbsolutePath()+"</br>");
      }
      finally{
       ous.close();
       ins.close();
      }
     }
     if("file2".equals(fileItem.getFieldName())){
      File remoteFile = new File(new String(fileItem.getName().getBytes(),"UTF-8"));
      out.println("遍歷到file2...</br>");
      out.println("客戶端文件位置:"+remoteFile.getAbsolutePath()+"</br>");
      //服務器端文件,放在uploadfile文件夾下
      file2 = new File(filePath,remoteFile.getName());
      file2.getParentFile().mkdirs();//創建文件夾路徑
      file2.createNewFile();//創建新文件
      InputStream ins = fileItem.getInputStream();//FileItem的內容
      OutputStream ous = new FileOutputStream(file2);//輸出到文件中
      try{
       byte[] buffer = new byte[1024];//字節緩存
       int len = 0;//實際緩存長度
       while((len=ins.read(buffer)) > -1){//循環讀入緩存
        ous.write(buffer,0,len);
       }
       out.println("已保存文件"+file2.getAbsolutePath()+"</br>");
      }
      finally{
       ous.close();
       ins.close();
      }
     }
    }
   }
   out.println("Request 解析完畢");
  } catch (FileUploadException e) {
   // TODO 自動生成的 catch 塊
   out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
   out.println("<HTML>");
   out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
   out.println(" <BODY>");
   
   if(file1 != null){
    out.println("<div>");
    out.println(" <div align='left'>file1;</div>");
    out.println(" <div align='left'><a href='"+request.getContextPath()+
      file1.getName()+"'target=_blank>"+file1.getName()+"</a>");
    out.println("</div>");
    out.println("</div>");
   }
   if(file2 != null){
    out.println("<div>");
    out.println(" <div align='left'>file2;</div>");
    out.println(" <div align='left'><a href='"+request.getContextPath()+
      file2.getName()+"'target=_blank>"+file2.getName()+"</a>");
    out.println("</div>");
    out.println("</div>");
   }
   out.println("<div>");
   out.println(" <div align='left'>description1:</div>");
   out.println(" <div align='left'>");
   out.println(description1);
   out.println("</div>");
   out.println("</div>");
   
   out.println("<div>");
   out.println(" <div align='left'>description2:</div>");
   out.println(" <div align='left'>");
   out.println(description2);
   out.println("</div>");
   out.println("</div>");
   
   out.println(" </BODY>");
   out.println("</HTML>");
   out.flush();
   out.close();
  }
  
 }
 
 public String getServletInfo() {
  return "This is my default servlet created by Eclipse";
 }
 
 
 public void init() throws ServletException {
  // Put your code here
  filePath = getServletConfig().getInitParameter("filePath");
 }
 
}

JavaWeb文件上傳開發實例

JavaWeb文件上傳開發實例

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美人做人爱a全程免费 | 青青草亚洲 | 久久天堂成人影院 | 我与恶魔的h生活ova | 色漫在线观看 | 成年女人毛片免费观看中文w | 日本高清视频在线观看 | 男人的天堂在线观看视频不卡 | 人人擦 | 欧美久久天天综合香蕉伊 | 996免费视频国产在线播放 | 欧美一级在线播放 | aaaa大片| 国产成人一区二区三区 | 亚洲视频精选 | 亚州性夜夜射在线观看 | 日本三级成人中文字幕乱码 | 波多野结衣xxxx性精品 | 女人把扒开给男人爽 | 国产亚洲综合精品一区二区三区 | 亚洲视频在线一区二区 | 国产精品成人扳一级aa毛片 | 国产黄色大片网站 | 亚洲精品国产一区二区三区在 | 小SAO货边洗澡边CAO你动漫 | 五月天国产视频 | 网站久久 | 西施打开双腿下面好紧 | 日本高清免费不卡在线播放 | 久久热在线视频精品1 | 亚洲高清国产拍精品动图 | 91啪在线观看国产在线 | 国产高清在线播放刘婷91 | 久久99re8热在线播放 | 九九在线精品视频 | 国产麻豆精品原创 | 国产成人愉拍精品 | 亚洲高清一区二区三区四区 | 2019aw网站 | 波多野结衣黑人系列在线观看 | 地址二地址三2021变更 |