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

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

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

服務器之家 - 編程語言 - Java教程 - java實現圖片的上傳與展示實例代碼

java實現圖片的上傳與展示實例代碼

2021-06-18 14:18MXC肖某某 Java教程

這篇文章主要給大家介紹了關于java實現圖片的上傳與展示的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

在很多的網站都可以實現上傳頭像,可以選擇自己喜歡的圖片做頭像,從本地上傳,下次登錄時可以直接顯示出已經上傳的頭像,那么這個是如何實現的呢?下面話不多說了,來一起看看詳細的介紹吧

一、注意事項:

1,該項目主要采用的是springboot+thymeleaf框架

2,代碼展示的為ajax完成圖片上傳(如果不用ajax只需要改變相應的form表單配置即可)

二、效果實現:

1,頁面效果:

java實現圖片的上傳與展示實例代碼

2,文件夾路徑下就會多了對應的圖片:

java實現圖片的上傳與展示實例代碼

三、代碼實現:

1,在html文本中編輯為(采用thymeleaf框架):

java" id="highlighter_945335">
?
1
2
3
4
5
6
7
8
9
10
<!-- 圖片文本框 -->
<input type="file" class="form-control" id="file" name="file" th:onchange="javascript:preview(this)">
<!-- 這個是在上傳之前回顯圖片圖片展示 -->
<div id="preview">
  <!--這個是為了將頁面返回的圖片展示出來的.默認隱藏-->
  <img style="width: 100px; height: 100px;display:none" id="imghidden" />
</div>
 
<!-- 提交...這里pageindex和pagesize可傳可不傳,主要取決于提交之后是否需要回到當前頁面. -->
<button type="submit" th:onclick="javascript:submitform([[${pageindex}]],[[${pagesize}]])" class="btn btn-primary">提交</button>

2,編輯js代碼:

兩種情況:1,有file中有值的時候提交;2,file文件中沒有值的時候提交

?
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
function submitform(pageindex, pagesize) {
  var formdata = new formdata(); //將需要提交的參數封裝起來
  formdata.append("id", $("#id").val());
  var zswb = $("#file").val(); //獲取file中的內容,看是否有值
  if (zswb == '' || zswb.length < 1) { //沒有file提交的時候走的接口
    $.ajax({
      url : '/editmoviewithoutfile',
      type : 'post',
      data : formdata,
      processdata : false,
      contenttype : false,
      success : function(value) {
        var result = json.parse(value);
        if (result == 'true') {
          window.location.href = "/index?pageindex=" + pageindex+ "&pagesize=" + pagesize;
        } else {
          lobibox.alert('error', {msg : "媒資信息更新失敗!!!"});
        }
      }
    });
  } else { //有file提交的時候走的接口
    formdata.append("file", $("#file")[0].files[0]);
    $.ajax({
      url : '/editmovieinfo',
      type : 'post',
      data : formdata,
      processdata : false,
      contenttype : false,
      success : function(value) {
      var result = json.parse(value);
    if (result == 'true') {
      window.location.href = "/index?pageindex=" + pageindex+ "&pagesize=" + pagesize;
    } else {
      lobibox.alert('error', {msg : "媒資信息更新失敗!!!"});
    }
   }
  });
 }
}
//圖片回顯:
function preview(file) {
  $("#imghidden").css("display", "none");
  var prevdiv = document.getelementbyid('preview');
  if (file.files && file.files[0]) {
    var reader = new filereader();
    reader.onload = function(evt) {
      prevdiv.innerhtml = '<img style="width: 100px;height: 100px;" src="' + evt.target.result + '" />';
    }
    reader.readasdataurl(file.files[0]);
  } else {
    prevdiv.innerhtml = '<div class="img" style="width: 100px;height:100px;filter:progid:dximagetransform.microsoft.alphaimageloader(sizingmethod=scale,src=\'' +
file.value + '\'"></div>';
  }
}

3,application.properties中的配置上傳的限制

?
1
2
3
4
5
6
7
#配置文件傳輸
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=0
#單個數據的大小
spring.servlet.multipart.maxfilesize=100mb
#總數據的大小
spring.servlet.multipart.maxrequestsize=100mb

4,controller(這里就不演示無file的情況,因為只是接受參數很簡單):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 有file文件時
* @param moviedto 封裝了需要傳遞過來的參數
* @param file 圖片file
*/
@requestmapping("/editmovieinfo")
@responsebody
public string editmovieinfo(@requestparam("id")final int id,@requestparam("file")multipartfile file) {
   int result = btshareservice.editmovieinfo(id,file,uploaddir);
   if (result > -1) {
    return json.tojsonstring("true");
   } else {
    return json.tojsonstring("false");
  }
}

5,service層處理:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@transactional
@override
public int editmovieinfo(int id, multipartfile file,string uploaddir) {
 try {
     // 圖片路徑
  string imgurl = null;
     //上傳
  string filename = upload(file, uploaddir, file.getoriginalfilename());
  if (!emptyutil.isempty(filename)) {
   imgurl = new file(uploaddir).getname() + "/" + filename;
  }
  movieinfo movie = movieinfoservice.selectmovieinfobydcpid(integer.valueof(moviedto.getid()));
     movie .setimgurl(imgurl)
  movieinfoservice.updatemovieinfobydcpid(movieinfo);
      return 0;
 } catch (exception e) {
    e.printstacktrace();
     return -1;
   }
}

圖片上傳的方法

?
1
2
3
4
5
6
7
8
9
10
11
12
public string upload(multipartfile file, string path, string filename) throws exception {
  // 生成新的文件名
  string realpath = path + "/" + uuid.randomuuid().tostring().replace("-", "")+filename.substring(filename.lastindexof("."));
  file dest = new file(realpath);
  // 判斷文件父目錄是否存在
  if (!dest.getparentfile().exists()) {
    dest.getparentfile().mkdir();
  }
  // 保存文件
  file.transferto(dest);
  return dest.getname();
}

6,至于dao層的操作和數據庫修改這里就直接省略了....

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/bbgs-xc/p/10058874.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产综合久久久久久 | 草莓视频在线观看免费 | 精品视频在线免费观看 | 日本一在线中文字幕天堂 | 免费观看欧美成人h | 欧美一区二区三区成人看不卡 | 扒开双腿羞辱调教play视频 | fuqer日本老师 | 小柔的性放荡羞辱日记动漫 | 亚洲国产一区二区三区青草影视 | 久久国产精品高清一区二区三区 | 亚洲视频在线免费 | 色综合久久天天综合 | 俄罗斯一级毛片免费播放 | 操儿子| 小早川怜子息梦精在线播放 | 网址在线观看你懂我意思吧免费的 | 毛片在线观看网站 | 亚洲 欧美 在线观看 | 成年人在线观看视频免费 | 亚洲六月丁香六月婷婷蜜芽 | 丰满在线观看 | 欧美美女被爆操 | 福利一区三区 | 免费日韩 | 久久综合狠狠综合狠狠 | 日本一区二区三区视频在线观看 | 亚洲天堂免费 | 性导航h | 69日本人 | 国内精品久久久久香蕉 | 激情另类国内一区二区视频 | 99久久香蕉国产线看观香 | dasd817黑人在线播放 | 黑人chinese女人 | 国产大片视频免费观看 | 国产欧美一区二区三区免费看 | 国产成+人+亚洲+欧美综合 | 精品国产原创在线观看视频 | 亚洲一区二区三区福利在线 | 国产精品调教 |