JS引用: <script type="text/javascript" src="~/bootstrap/js/fileinput.min.js"></script> <link href="~/bootstrap/css/fileinput.min.css" rel="stylesheet" /> <script src="~/Scripts/lib/jquery.json.js"></script> HTML: <input id="fileUpload" type="file" > JS: //自動上傳檔案-JS function initFileInput(ctrlName, uploadUrl) { var control = $('#' + ctrlName); control.fileinput({ language: 'zh', //設定語言 uploadUrl: uploadUrl, //上傳的地址 (該方法需返回JSON字串) allowedFileExtensions: ['xlsx', 'xls', 'txt'],//接收的檔案字尾 showUpload: false, //是否顯示上傳按鈕 showCaption: true,//是否顯示標題 browseClass: "btn btn-primary", //按鈕樣式 //previewFileIcon: "<i class='glyphicon glyphicon-king'></i>", uploadExtraData: { ID: "123" } }).on('filebatchselected', function (event, data, id, index) { $(this).fileinput("upload"); }).on("fileuploaded", function (event, data) { if (data.response) { //通過 data.response.Json物件屬性 獲得返回資料 errors = data.response.ErrorList; } }) } //上傳JS初始化 $(function () { initFileInput("fileUpload", "Controllers/Action"); }); //獲取上傳檔案彈窗關閉動作 $("#fileUpload").change(function () { alert("上傳檔案彈窗已關閉") }) 參考資料:http://www.oschina.net/code/snippet_269752_55899
C#後臺儲存處理:
//上傳檔案 string root = "~/Upload/Files/StorageOutFile/"; string path = Server.MapPath(root); string datePath = string.Empty; datePath += DateTime.Now.Year.ToString(); datePath += DateTime.Now.Month.ToString("D2"); datePath += DateTime.Now.Day.ToString("D2") + "/"; root += datePath; if (path != null) { path += datePath; if (!Directory.Exists(Path.GetDirectoryName(path))) { Directory.CreateDirectory(Path.GetDirectoryName(path)); } } string fileName = root + CurUser.StaffName + DateTime.Now.ToString("yyyyMMddhhmmssffff") + Path.GetExtension(Request.Files[0].FileName); string fileUrl = Server.MapPath(fileName);
//儲存檔案 Request.Files[0].SaveAs(fileUrl); //讀取EXCEL DataSet ds = new DataSet(); Workbook workbook = new Workbook(fileUrl); Worksheet sheet = workbook.Worksheets[0]; Cells cells = sheet.Cells; DataTable tab = new DataTable(); for (int i = 0; i <= cells.MaxColumn; i++) { tab.Columns.Add(cells[0, i].StringValue.Trim(), typeof(System.String)); } for (int i = 1; i <= cells.MaxDataRow; i++) { DataRow dr = tab.NewRow(); for (int j = 0; j <= cells.MaxDataColumn; j++) { string data = cells[i, j].StringValue.Trim(); dr[j] = data; } tab.Rows.Add(dr); } ds.Tables.Add(tab); DataTable dt = ds.Tables[0];