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

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

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

服務器之家 - 編程語言 - Java教程 - java文件上傳下載代碼實例

java文件上傳下載代碼實例

2021-07-22 16:24弓長張&木子李 Java教程

這篇文章主要介紹了java文件上傳下載,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本文實例為大家分享了java文件上傳下載的具體代碼,供大家參考,具體內容如下

文件上傳

?
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
@requestmapping(value="/uploadfile",method=requestmethod.post)
 public resultobject uploadfiles(@requestparam("file")multipartfile file,httpservletrequest request){
    resultobject rs = null;//返回上傳完成信息
    string uploaddir = "files";//上傳目錄,文件保存在webapp下的files文件中
   if(!file.isempty()) {
     //可以對user做一些操作如存入數據庫
     //以下的代碼是將文件file重新命名并存入tomcat的webapp目錄下項目的下級目錄
     string filerealname = file.getoriginalfilename();          //獲得原始文件名;
     /*int pointindex = filerealname.indexof(".");            //點號的位置
     string filesuffix = filerealname.substring(pointindex);       //截取文件后綴
     uuid fileid = uuid.randomuuid();            //生成文件的前綴包含連字符
     string savedfilename = fileid.tostring().replace("-", "").concat(filesuffix);    //文件存取名
     */
     
     string saveddir = request.getsession().getservletcontext().getrealpath(uploaddir); //獲取服務器指定文件存取路徑
     file savedfile = new file(saveddir, filerealname);
     boolean iscreatesuccess;
     try {
       iscreatesuccess = savedfile.createnewfile();
       if (iscreatesuccess) {
 
         file.transferto(savedfile); //轉存文件
         rs = resultobject.getsuccessresult("上傳文件成功");
         long size = file.getsize();//獲取文件大小
 
 
         rs.setdata(uploaddir+filerealname);
       }else{
         rs = resultobject.getfailresult("請修改文件名,重新上傳");
       }
     } catch (ioexception e) {
       e.printstacktrace();
     }
   }else{
     rs = resultobject.getfailresult("文件不能為空");
   }
   return rs;
 }

文件下載

?
1
2
3
4
5
@requestmapping(value = "/filterpermission/appdownload", method = requestmethod.get)
  public void appdownload(httpservletrequest request, httpservletresponse response) {
    //url是上面文件上傳的url
    download(url,request,response);
  }
?
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
public string download(string filepath, httpservletrequest request, httpservletresponse response) {
    bufferedinputstream bis = null;
    bufferedoutputstream bos = null;
    try {
      //獲取文件名
      string filename = filepath.substring(filepath.lastindexof("/")+1);
      response.setcharacterencoding("utf-8");
      response.setcontenttype("application/octet-stream");
      //response.setcontenttype("application/force-download");
      //處理下載彈出框名字的編碼問題
      response.setheader("content-disposition", "attachment;filename="
          + new string( filename.getbytes("gb2312"), "iso8859-1" ));
      //獲取文件的下載路徑
      string path = request.getsession().getservletcontext().getrealpath(filepath);
      //利用輸入輸出流對文件進行下載
      inputstream inputstream = new fileinputstream(new file(path));
      //設置文件大小
      response.setheader("content-length", string.valueof(inputstream.available()));
 
      bis = new bufferedinputstream(inputstream);//構造讀取流
      bos = new bufferedoutputstream(response.getoutputstream());//構造輸出流
      byte[] buff = new byte[1024];
      int bytesread;
      //每次讀取緩存大小的流,寫到輸出流
      while (-1 != (bytesread = bis.read(buff, 0, buff.length))) {
        bos.write(buff, 0, bytesread);
      }
      response.flushbuffer();//將所有的讀取的流返回給客戶端
 
    } catch (filenotfoundexception e) {
      e.printstacktrace();
    } catch (ioexception e) {
      e.printstacktrace();
    }finally{
      try{
        if(null != bis){
          bis.close();
        }
        if(null != bos){
          bos.close();
        }
      }catch(ioexception e){
        system.out.println("下載文件失敗,"+"文件路徑:"+filepath+e);
        logger.error("文件下載失敗!", e);
      }
    }
    // 返回值要注意,要不然就出現下面這句錯誤!
    //java+getoutputstream() has already been called for this response
    return null;
  }

以上所述是小編給大家介紹的java文件上傳下載詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://www.cnblogs.com/gczmn/p/9921479.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 高h辣文小说网 烧书阁 | 日韩一区二区三区不卡视频 | 好爽好舒服视频 | 欧美草逼网站 | 精品图区| 91频视 | 慢慢娇淫 | 欧洲肥女大肥臀 | 4s4s4s4s色大众影视 | 风间由美理论片在线观看 | 97视频人人| 国产高清亚洲 | 国产乱子伦一区二区三区 | 日韩国产成人精品视频人 | 日本手机在线视频 | 91制片厂制作传媒网站 | 亚洲视频免费在线观看 | 亚洲精品久久碰 | 男人j放进女人的p免费看视频 | 冰漪丰满大乳人体图片欣赏 | 操穴勤| 久久婷婷丁香五月色综合啪免费 | 91精品国产色综合久久 | 热久久99精品这里有精品 | 91香蕉嫩草 | 四虎最新免费观看网址 | 护士的小嫩嫩好紧好舒服 | 亚洲国产AV无码综合在线 | 男人添女人 | 国产欧美精品一区二区三区 | 青草娱乐极品免费视频 | heyzo在线播放 | 日本视频免费在线播放 | 97精品国产高清在线看入口 | 国产一区二区不卡 | 免费网站直接进入 | 美女天天操 | 花唇肿胀无法合拢双性 | 经典千人斩一区二区视频 | 性吟网 | 国产日韩免费视频 |