道理相通,我简单分享下在.net MVC下的实装。
1.制作Model类
<code class="language-cs">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; } } }</code>
2.实装controller里的对应方法,我这个处理逻辑比较复杂,懒得修改了,反正就这个意思
<code class="language-cs"> 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"); }</code>
3.页面的实装
<code class="language-html">@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> </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 src="/static/imghwm/default1.png" data-src="../Content/img/loader.gif" class="lazy" id="loadingGif" 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> }</code>
就是这个样子
还附赠了一个简易loding的实现
贴出CSS代码:
<code class="language-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; }</code>
这里,多说一嘴:
关于input 的accept属性,这里只想读入Excel,所以
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
以上就是本文的全部内容,希望对大家的学习有所帮助。

JavaScript是現代Web開發的核心語言,因其多樣性和靈活性而廣泛應用。 1)前端開發:通過DOM操作和現代框架(如React、Vue.js、Angular)構建動態網頁和單頁面應用。 2)服務器端開發:Node.js利用非阻塞I/O模型處理高並發和實時應用。 3)移動和桌面應用開發:通過ReactNative和Electron實現跨平台開發,提高開發效率。

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中