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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 手机看片福利盒子久久 | 毛片视频网站在线观看 | 人人爽人人射 | 国产亚洲欧美日韩俺去了 | 性欧美高清强烈性视频 | 高清一级片 | 亚洲黄视频在线观看 | 欧美一级片免费看 | 国产一卡二卡四卡免费 | 视频在线欧美 | 99久久99热久久精品免费看 | 桥本有菜ssni-677在线观看 | 亚洲欧洲淘宝天堂日本 | 天天色综 | 97热在线 | 欧美日韩高清一区 | 国内老司机精品视频在线播出 | 视频一区精品 | 亚洲视频在线看 | 色综七七久久成人影 | 精品免费国产一区二区三区 | 日本网 | 亚洲精品乱码蜜桃久久久 | 亚洲图片一区二区三区 | 久久精品国产色蜜蜜麻豆国语版 | 亚洲AV永久无码精品老司机蜜桃 | 精品久久久久国产免费 | 九九久久国产精品大片 | 欧美xxxxx九色视频免费观看 | 亚洲黄色片免费看 | 日本aa大片在线播放免费看 | 国产精品二区高清在线 | 久久五月综合婷婷中文云霸高清 | 亚州在线播放 | 美女视频在线观看视频 | 俺去俺来也在线www色官网 | 美女的隐私视频免费看软件 | 饭冈加奈子在线播放观看 | 四虎影视4hutv最新地址在线 | 99热久久这里只精品国产www | 久久电影精品久久99久久 |