JQuery fileupload插件實現(xiàn)文件上傳功能
來源:易賢網(wǎng) 閱讀:1529 次 日期:2016-07-19 14:55:08
溫馨提示:易賢網(wǎng)小編為您整理了“JQuery fileupload插件實現(xiàn)文件上傳功能”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了JQuery fileupload插件實現(xiàn)文件上傳功能的相關(guān)資料,需要的朋友可以參考下

道理相通,我簡單分享下在.net MVC下的實裝。

1.制作Model類

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace RCRS.WebApp.LG.EM.Models

{

  //----------------------------------------------------------------

  /// <summary>

  /// Import畫面用

  /// </summary>

  //----------------------------------------------------------------

  public class tmp_UploadFile

  {

    /// <summary></summary>

    public HttpPostedFileBase FileName { get; set; }

  }

}

2.實裝controller里的對應方法,我這個處理邏輯比較復雜,懶得修改了,反正就這個意思

//----------------------------------------------------------------

    /// <summary>

    /// アップロード

    /// </summary>

    /// <returns></returns>

    //----------------------------------------------------------------

    [HttpPost]

    public virtual ActionResult UploadFile()

    {

      HttpPostedFileBase uploadedFile = Request.Files["FileName"];

      string message = "アップロード失敗しました。";

      bool isUploaded = false;

      string path = "";

      string dateTimeNow = DateTime.Now.ToString("yyMMdd-hhmmss");

      string userName = User.Identity.GetUserName();

      string uploadMsg = string.Empty;

      if (uploadedFile != null && uploadedFile.ContentLength != 0)

      {

        string pathForSaving = Server.MapPath("~/App_Data/Uploaded/");

        try

        {

          if (BsnssBihin.IsExcel(uploadedFile.FileName))

          {

            path = System.IO.Path.Combine(pathForSaving, dateTimeNow + "_" + uploadedFile.FileName);

            uploadedFile.SaveAs(path);

            isUploaded = BsnssBihin.UploadBihinChange(path, userName, ref uploadMsg);

            if (isUploaded)

            {

              message = "アップロード成功しました!" + "\n" + uploadMsg;

              Logger.Info("[成功]備品アップロード, " + dateTimeNow + ", " + "[" + userName + "]" + "[" + path + "]" + uploadMsg);

            }

            else

            {

              message = "アップロード失敗しました。" + "\n" + uploadMsg;

              Logger.Info("[失敗]備品アップロード, " + dateTimeNow + ", " + "[" + userName + "]" + "["+path + "]" + uploadMsg);

            }

          }

          else

          {

            message = "ファイルの形式は不正です。";

          }

        }

        catch (Exception ex)

        {

          message = string.Format("失敗しました: {0}", ex.Message);

          Logger.Info("[失敗]備品アップロード: " + ex.Message + dateTimeNow + ", " + "[" + userName + "]" + "[" + path + "]");

        }

      }

      return Json(new { isUploaded = isUploaded, message = message }, "text/html");

    }

3.頁面的實裝

@model RCRS.WebApp.LG.EM.Models.tmp_UploadFile

<table align="center" style="margin-bottom:200px">

  <tr>

    <td>

      <div style="width:470px">

        <input type="text" id="tbx-file-path" value="ファイルを選択してください" readonly="readonly" />

      </div>

    </td>

    <td>

      <div style="width: 60px">

        <span class="btn btn-primary fileinput-button">

          <span>選 択</span>

          @Html.TextBoxFor(m => m.FileName, new { id = "file-upload", type = "file", accept = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" })

        </span>

      </div>

    </td>

    <td>

      <div style="width:60px">

        <a class="btn btn-primary" href="#" id="hl-start-upload">アップロード</a>

      </div>

    </td>

  </tr>

</table>

<div id="loadingOver" class="loadingOver"></div>

<div id="dvloader" class="dvloader">

  <span class="label label-info" style="align-content:center"> 処理中、少々お待ちください</span><br />

  <br />

  <img id="loadingGif" src="../Content/img/loader.gif" alt="" />

</div>

@section scripts{

  @Scripts.Render("~/bundles/jquery")

  @Scripts.Render("~/bundles/jqueryui")

  @Scripts.Render("~/bundles/jqueryval")

  @Scripts.Render("~/bundles/common")

  @Scripts.Render("~/bundles/fileupload")

  <script type="text/javascript">

    var data_upload;

    $(document).ready(function () {

      'use strict';

      $('#file-upload').fileupload({

        url: '../Bihin/UploadFile',

        dataType: 'json',

        add: function (e, data) {

          data_upload = data;

        },

        done: function (event, data) {

          if (data.result.isUploaded) {

            $("#tbx-file-path").val("ファイルを選択してください");

            data_upload = "";

          }

          $("#dvloader").css("display", "none");

          $("#loadingOver").css("display", "none");

          alert(data.result.message);

        },

        fail: function (event, data) {

          data_upload = "";

          if (data.files[0].error) {

            $("#dvloader").css("display", "none");

            $("#loadingOver").css("display", "none");

            alert(data.files[0].error);

          }

        }

      });

    });

    $("#hl-start-upload").on('click', function () {

      if (data_upload) {

        $("#dvloader").css("display", "block");

        $("#loadingOver").css("display", "block");

        data_upload.submit();

      }

      return false;

    });

    $("#file-upload").on('change', function () {

      $("#tbx-file-path").val(this.files[0].name);

    });

    </script>

}

√,就是這個樣子

還附贈了一個簡易loding的實現(xiàn)

貼出CSS代碼:

.dvloader {

  display:none;

  position:absolute;

  top:40%;

  left:40%;

  width:20%;

  height:20%;

  z-index:1001;

  text-align:center;

  font-size:1.5em;

}

.loadingOver {

  display:none;

  position:absolute;

  top:0;

  left:0;

  width:100%;

  height:100%;

  background-color:#f5f5f5;

  opacity:0.5;

  z-index:1000;

}

這里,多說一下:

關(guān)于input 的accept屬性,這里只想讀入Excel,所以

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助。

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:JQuery fileupload插件實現(xiàn)文件上傳功能

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)