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

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

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

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

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

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

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

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

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

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

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文件上傳類--上傳功能的開發

將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); //負責處理上傳的文件數據,并將表單中每個輸入項封裝成一個fileitem對象中
    //設置上傳文件的大小為10m
    factory.setsizethreshold(2*1024*1024);
    list items=null;
    try {
      //parse 解析
      items=upload.parserequest(request);  //得到一個保存了所有上傳內容的list對象
    } catch (fileuploadexception e) {
      // todo auto-generated catch block
      e.printstacktrace();
    }
    iterator iter=items.iterator();  //迭代上傳的文件數據
    while(iter.hasnext()){
      fileitem item=(fileitem) iter.next();
      if(!item.isformfield()){ //如果不是上傳的
        //根據時間戳創建頭像文件
        filename=system.currenttimemillis()+".jpg";
        //通過getrealpath獲取上傳文件夾,如果項目存在將存在當前項目下 不存在的話創建項目文件夾
        //圖片文件夾
        string photofolder=request.getservletcontext().getrealpath("uploaded");
        file f=new file(photofolder,filename);
        f.getparentfile().mkdirs(); //如果父文件夾不存在則自動創建
        //通過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上傳文件到服務器并相應顯示功能的實現代碼

總結

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 俄罗斯处女 | 色播影院性播影院私人影院 | 天选之王漫画顾长歌免费阅读 | www.4虎影院 w7w7w7w7w免费 | 国产亚洲精品aaa大片 | 美国69xxxx59 | 国产成人精品视频一区二区不卡 | 国产精品自在欧美一区 | 欧美在线看片a免费观看 | 欧美干b视频 | 香蕉tv亚洲专区在线观看 | nxgx在线观看国产中文 | 色老板在线免费视频 | 日韩综合一区 | 午夜视频一区二区 | 性俄罗斯xxxxxhd| 国产伦精品一区二区三区免费观看 | 亚洲欧美日韩中文字幕久久 | 韩国美女豪爽一级毛片 | 国产激情一区二区三区四区 | 99这里只有精品视频 | 欧美日韩国产超高清免费看片 | 门房秦大爷最新章节阅读 | 日本www视频在线观看 | 秋霞午夜视频在线观看 | 十大免费批日的软件 | 久久强奷乱码老熟女 | 日韩一区二区三区四区不卡 | 五月最新商场女厕所高跟嘘嘘 | 国产免费资源高清小视频在线观看 | 亚洲视频免费 | 全彩调教侵犯h本子全彩妖气he | 97久久久亚洲综合久久88 | 翁公与小莹在客厅激情 | 亚洲AV久久无码精品蜜桃 | 国内精品福利丝袜视频_速 国内精品91久久久久 | 无人在线高清免费看 | 男神插曲女生动漫完整版动漫 | 日本在线播放视频 | 四虎影视在线永久免费观看 | 欧美成人在线影院 |