激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

服務器之家 - 編程語言 - Java教程 - J2EE Servlet上傳文件到服務器并相應顯示功能的實現(xiàn)代碼

J2EE Servlet上傳文件到服務器并相應顯示功能的實現(xiàn)代碼

2021-05-13 11:55演繹、白色舞步 Java教程

這篇文章主要介紹了J2EE Servlet上傳文件到服務器,并相應顯示,在文中上傳方式使用的是post不能使用get,具體實例代碼大家參考下本文

編輯上傳文件的頁面upload.html

注意事項:上傳方式使用post不能使用get(get不能上傳文件)

表單 enctype 屬性應該設置為 multipart/form-data.(表示提交的數(shù)據(jù)是二進制文件)

upload.html

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>文件上傳</title>
</head>
<body>
  <form action="uploadphotoservlet" method="post" enctype="multipart/form-data">
    人物名稱:<input type="text" name="heroname"/><br>
    上傳頭像:<input type="file" name="filepath"/><br>
    <input type="submit" value="上傳">
  </form>
</body>
</html>

uploadptotoservlet文件上傳類--上傳功能的開發(fā)

將commons-io-1.4.jar和commons-fileupload-1.2.2.jar 兩個jar包放到web-inf/lib 目錄下。

?
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
import java.io.file;
import java.io.fileoutputstream;
import java.io.ioexception;
import java.io.inputstream;
import java.io.printwriter;
import java.util.iterator;
import java.util.list;
import javax.servlet.servletexception;
import javax.servlet.annotation.webservlet;
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;
/**
 * servlet implementation class uploadphotoservlet
 */
@webservlet("/uploadphotoservlet")
public class uploadphotoservlet extends httpservlet {
  private static final long serialversionuid = 1l;
  /**
   * @see httpservlet#httpservlet()
   */
  public uploadphotoservlet() {
    super();
    // todo auto-generated constructor stub
  }
  /**
   * @see httpservlet#doget(httpservletrequest request, httpservletresponse response)
   */
  protected void doget(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
    // todo auto-generated method stub
//    response.getwriter().append("served at: ").append(request.getcontextpath());
    string filename=null;
    diskfileitemfactory factory=new diskfileitemfactory();  //磁盤文件條目工廠
    servletfileupload upload=new servletfileupload(factory); //負責處理上傳的文件數(shù)據(jù),并將表單中每個輸入項封裝成一個fileitem對象中
    //設置上傳文件的大小為10m
    factory.setsizethreshold(2*1024*1024);
    list items=null;
    try {
      //parse 解析
      items=upload.parserequest(request);  //得到一個保存了所有上傳內(nèi)容的list對象
    } catch (fileuploadexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    }
    iterator iter=items.iterator();  //迭代上傳的文件數(shù)據(jù)
    while(iter.hasnext()){
      fileitem item=(fileitem) iter.next();
      if(!item.isformfield()){ //如果不是上傳的
        //根據(jù)時間戳創(chuàng)建頭像文件
        filename=system.currenttimemillis()+".jpg";
        //通過getrealpath獲取上傳文件夾,如果項目存在將存在當前項目下 不存在的話創(chuàng)建項目文件夾
        //圖片文件夾
        string photofolder=request.getservletcontext().getrealpath("uploaded");
        file f=new file(photofolder,filename);
        f.getparentfile().mkdirs(); //如果父文件夾不存在則自動創(chuàng)建
        //通過item.getinputstream() 獲取瀏覽器上傳的文件
        inputstream is = item.getinputstream();  //將文件讀進來
        //復制文件
        fileoutputstream fos=new fileoutputstream(f); //往界面上顯示
        byte[] b=new byte[2*1024*1024];
        int len=0;
        while((len=is.read(b))!=-1){
          fos.write(b, 0, len);
        }
        fos.close();
      }else{
        system.out.println(item.getfieldname());//heroname
        string value=item.getstring(); 
        value=new string(value.getbytes("iso-8859-1"), "utf-8");
        system.out.println(value);  //桑葚
      }
    }
    string html="<img width='200' height='150' src='uploaded/%s'/>";
    response.setcontenttype("text/html");
    printwriter pw=response.getwriter();
    pw.format(html, filename);
  }
  /**
   * @see httpservlet#dopost(httpservletrequest request, httpservletresponse response)
   */
  protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception {
    // todo auto-generated method stub
    doget(request, response);
  }
}

運行結果:

J2EE Servlet上傳文件到服務器并相應顯示功能的實現(xiàn)代碼

總結

以上所述是小編給大家介紹的j2ee servlet上傳文件到服務器并相應顯示功能的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網(wǎng)站的支持!

原文鏈接:https://www.cnblogs.com/gaohuanhuan/archive/2018/07/06/9271718.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩国产成人在线 | 国产一级91 | 99热草 | 久久久免费观看完整版 | 免费看成人毛片 | 99ri在线| 日日草夜夜草 | 国产精品99久久久久久久女警 | 成人免费av在线播放 | 色污视频 | 欧美爱爱视频网站 | 在线观看av国产一区二区 | av手机免费在线观看 | av电影免费在线 | 黄色aaa视频| 动漫孕妇被羞羞视频 | 91短视频网页版 | 中国一级毛片在线视频 | 国产人妖一区二区 | 在线播放免费视频 | 免费一区二区三区 | 史上最强炼体老祖动漫在线观看 | 最新中文在线视频 | 成人免费淫片视频软件 | 亚洲视频精选 | 黄色av免费电影 | 一起草av在线| 欧美精品一二三区 | 国产精品久久久久久久久久久久午夜 | 成年免费大片黄在线观看岛国 | 亚洲精品成人久久久 | 极品xxxx欧美一区二区 | 毛片一级网站 | 成人 日韩| 在线成人免费av | 黄色免费影片 | 久久丝袜脚交足黄网站免费 | 国产精品一区二区三区在线看 | 9191色 | 欧美精品激情视频 | 国产91影院 |