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

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

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

服務器之家 - 編程語言 - ASP.NET教程 - .Net學習筆記之Layui多圖片上傳功能

.Net學習筆記之Layui多圖片上傳功能

2020-06-16 12:37追逐時光 ASP.NET教程

這篇文章主要給大家介紹了關于.Net學習筆記之Layui多圖片上傳功能的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用.Net具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

 

前言:

 

多圖上傳在一些特殊的需求中我們經常會遇到,其實多圖上傳的原理大家都有各自的見解。對于Layui多圖上傳和我之前所說的通過js獲取文本框中的文件數組遍歷提交的原理一樣,只不過是Layui中的upload.render方法已經幫我們封裝好了,我們只管調用即可,也就是說你選中了幾張圖片,那么將會向后臺請求與圖片張數相同的次數,即為遍歷提交的方式。

Layui文件/圖片樣式地址(官方文檔):https://www.layui.com/demo/upload.html

 

一、引入Layui.cs和Layui.js:

 

需要本地項目中存在layui相關樣式和js,非網絡地址

 <link rel="stylesheet" href="//res.layui.com/layui/dist/css/layui.css" rel="external nofollow"   media="all">

 <script src="//res.layui.com/layui/dist/layui.js" charset="utf-8"></script>

當然假如你需要有彈框提示的話,你還需要引入Layer.js

 

二、前端代碼:

 

a.Html中的代碼:

?
1
2
3
4
5
6
7
8
9
10
11
<li>
<h6>滾動圖片:</h6>
 <div class="layui-upload">
<button type="button" class="layui-btn" id="test2">滾動圖片上傳【推薦上傳三張】</button> <button type="button" class="layui-btn layui-btn-danger" onclick="clearAll()"><i class="layui-icon"></i></button>
<input type="hidden" name="ScrollingGraph" id="ScrollingGraph"/>
<blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
預覽圖:
<div class="layui-upload-list" id="demo2"></div>
</blockquote>
</div>
</li>

b.js中的代碼:

?
<table id="seyqg"><wbr id="seyqg"></wbr></table>
  • <center id="seyqg"><acronym id="seyqg"></acronym></center><li id="seyqg"><dl id="seyqg"></dl></li>
      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
      <script>
      layui.use('upload',
      function () {
      var $ = layui.jquery, upload = layui.upload;
      //多圖片上傳
      upload.render({
       elem: '#test2',
       url: '/FileUpload/FileLoad/',
       multiple: true,//允許選擇多張圖片
      before: function (obj) {
      //預讀本地文件示例,不支持ie8
      obj.preview(function (index, file, result) {
      $('#demo2').append(
      '<img src="' + result + '" id="codetool">

       

      三、服務端接口圖片文件流,并保存:

       

      ?
      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
      90
      91
      92
      93
      94
      95
      96
      97
      98
      99
      100
      1public class FileUploadController : Controller
       2{
       3/// <summary>
      /// 對驗證和處理 HTML 窗體中的輸入數據所需的信息進行封裝,如FromData拼接而成的文件
      /// </summary>
      /// <param name="context">FemContext對驗證和處理html窗體中輸入的數據進行封裝</param>
      /// <returns></returns>
      [HttpPost]
      public ActionResult FileLoad(FormContext context)
       {
      HttpPostedFileBase httpPostedFileBase = Request.Files[0];//獲取二進制圖片文件流
      if (httpPostedFileBase != null)
      {
      try
      {
      ControllerContext.HttpContext.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");
      ControllerContext.HttpContext.Response.Charset = "UTF-8";
       
      string fileName = Path.GetFileName(httpPostedFileBase.FileName);//原始文件名稱
      string fileExtension = Path.GetExtension(fileName);//文件擴展名
       
      byte[] fileData = ReadFileBytes(httpPostedFileBase);//文件流轉化為二進制字節
       
      string result = SaveFile(fileExtension, fileData);//文件保存
      if (string.IsNullOrEmpty(result))
      {
      return Json(new { isSuccess = false, path = "",errorMsg= "上傳文件失敗"});
      }
       
      return Json(new { isSuccess = true, path = result });
      }
      catch (Exception ex)
      {
      return Json(new { isSuccess = false, path = "" });
      }
      }
      else
      {
      return Json(new { isSuccess = false, path = "" });
      }
      }
       
       
      /// <summary>
      /// 將文件流轉化為二進制字節
      /// </summary>
      /// <param name="fileData">圖片文件流</param>
      /// <returns></returns>
      private byte[] ReadFileBytes(HttpPostedFileBase fileData)
      {
      byte[] data;
      using (Stream inputStream = fileData.InputStream)
      {
      MemoryStream memoryStream = inputStream as MemoryStream;
      if (memoryStream == null)
      {
      memoryStream = new MemoryStream();
      inputStream.CopyTo(memoryStream);
      }
      data = memoryStream.ToArray();
      }
      return data;
      }
       
      /// <summary>
      /// 保存文件
      /// </summary>
      /// <param name="fileExtension">文件擴展名</param>
      /// <param name="fileData">圖片二進制文件信息</param>
      /// <returns></returns>
      private string SaveFile(string fileExtension, byte[] fileData)
      {
      string result;
      try
      {
       
      string saveName = Guid.NewGuid().ToString()+ fileExtension; //保存文件名稱
       
      // 文件上傳后的保存路徑
      string basePath = "UploadFile";
      string saveDir = DateTime.Now.ToString("yyyy-MM-dd");
      string savePath = System.IO.Path.Combine(saveDir, saveName);
       
      string serverDir = System.IO.Path.Combine(Server.MapPath("~/"), basePath, saveDir);
      if (!System.IO.Directory.Exists(serverDir))
      {
      System.IO.Directory.CreateDirectory(serverDir);
      }
      string fileNme = System.IO.Path.Combine(serverDir, saveName);//保存文件完整路徑
      System.IO.File.WriteAllBytes(fileNme, fileData);//WriteAllBytes創建一個新的文件,按照對應的文件流寫入,假如已存在則覆蓋
      //返回完整的圖片保存地址
      result="/"+basePath + "/" + saveDir + "/" + saveName;
      }
      catch (Exception)
      {
      result = "發生錯誤";
      }
      return result;
      }
      }

       

      四、效果圖展示:

       

      .Net學習筆記之Layui多圖片上傳功能

      .Net學習筆記之Layui多圖片上傳功能

      總結

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

      原文鏈接:https://www.cnblogs.com/Can-daydayup/p/11125324.html

      延伸 · 閱讀

      精彩推薦
      主站蜘蛛池模板: 99久久免费国产特黄 | yellow视频在线观看免费 | 久草热在线 | 亚洲天堂一区二区在线观看 | 91香蕉在线| 欧美国产日本精品一区二区三区 | 天天色综 | 亚州综合网 | 91最新国产 | 四虎成人影院网址 | 国产欧美日韩综合 | 奇米影视久久777中文字幕 | 色多多多| 免费高清资源黄网站在线观看 | 亚洲成人77777 | 亚洲国产精品综合一区在线 | 天天操天天舔 | 日本www午夜色在线视频 | 国产午夜亚洲精品一区网站 | 女子张腿让男人桶免费 | 日本在线亚州精品视频在线 | 好爽好紧小雪别夹小说 | 91啦在线视频 | 免费观看一区二区 | 免费视频片在线观看 | 日本春菜花在线中文字幕 | 美女的隐私无遮挡撒尿 | 精品国产成人AV在线看 | 免费国产高清精品一区在线 | 男人视频网站 | 奇米影视奇米色777欧美 | 免费高清视频在线观看 | 久久精品中文字幕 | 日本高清在线看免费观看 | 大肥婆丰满大肥奶bbw肥 | 亚洲精品国产国语 | 国产亚洲精aa在线观看香蕉 | 精品一久久香蕉国产线看观 | 成年人在线视频免费观看 | a色在线| 禁忌高h |
        • <button id="seyqg"></button>
          <code id="seyqg"></code>