道理相通,我简单分享下在.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的实现
贴出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; }
这里,多说一嘴:
关于input 的accept属性,这里只想读入Excel,所以
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel
更多精彩内容,请点击《jQuery上传操作汇总》,进行深入学习和研究。
以上就是本文的全部内容,希望对大家的学习有所帮助。
本文向大家介绍jQuery插件实现文件上传功能(支持拖拽),包括了jQuery插件实现文件上传功能(支持拖拽)的使用技巧和注意事项,需要的朋友参考一下 先贴上源代码地址,点击获取。然后直接进入主题啦,当然,如果你觉得我有哪里写的不对或者欠妥的地方,欢迎留言指出。在附上一些代码之前,我们还是先来了解下,上传文件的时候需要利用的一些必要的知识。 首先我们要说的就是FileReader对象,这是一个H
本文向大家介绍ajaxfileupload.js实现上传文件功能,包括了ajaxfileupload.js实现上传文件功能的使用技巧和注意事项,需要的朋友参考一下 使用ajaxfileupload.js实现上传文件功能 一、ajaxFileUpload是一个异步上传文件的jQuery插语法:$.ajaxFileUpload([options]) options参数说明: 1、url
本文向大家介绍AjaxUpLoad.js实现文件上传功能,包括了AjaxUpLoad.js实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 AjaxUpLoad.js的使用实现无刷新文件上传,如图。 图1 文件上传前 图2 文件上传后 1、创建页面并编写HTML 上传文档: 上传图片: 2、引用AjaxUpload.js文件 3、编写JS脚本 4、创建/Common/UploadHan
本文向大家介绍java实现文件上传功能,包括了java实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现文件上传的具体代码,供大家参考,具体内容如下 一、文件上传准备工作 对于文件上传,浏览器在上传的过程中将文件以流的形式提交到服务器。 可以选择apache的commons-fileupload包作为文件上传组件,commons-fileupload包依赖于
本文向大家介绍Struts2实现文件上传功能,包括了Struts2实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 Servlet 3.0规范的HttpServletRequest已经提供了方法来处理文件上传但这种上传需要在Servlet中完成。而Struts2则提供了更简单的封装。 Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,因此使用Str
本文向大家介绍C#实现文件上传以及多文件上传功能,包括了C#实现文件上传以及多文件上传功能的使用技巧和注意事项,需要的朋友参考一下 一、前端搭建 1、前端用到js:uploadify(下载地址:http://www.uploadify.com/download/)、layer (下载地址:http://layer.layui.com/),下载之后把它们放在你的项目里 列如 2、根据你的需要在你项目