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[].FileName);
string fileUrl = Server.MapPath(fileName);
//保存文件
Request.Files[].SaveAs(fileUrl); //读取EXCEL
DataSet ds = new DataSet();
Workbook workbook = new Workbook(fileUrl);
Worksheet sheet = workbook.Worksheets[];
Cells cells = sheet.Cells;
DataTable tab = new DataTable();
for (int i = ; i <= cells.MaxColumn; i++)
{
tab.Columns.Add(cells[, i].StringValue.Trim(), typeof(System.String));
}
for (int i = ; i <= cells.MaxDataRow; i++)
{
DataRow dr = tab.NewRow();
for (int j = ; 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[];

JS实现文件自动上传的更多相关文章

  1. 在CabloyJS中将Webpack生成的文件自动上传到阿里云OSS

    背景 阿里云OSS提供了一个Webpack插件,可在Webpack打包结束后将webpack生成的文件自动上传到阿里云OSS中 下面看看在CabloyJS中如何使用该插件 新建项目,并配置MySQL连 ...

  2. Node.js写文件的三种方法

    Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...

  3. web主题公园版权信息破解:script.js加密文件

    很多人会使用web主题公园网站的免费worldpress主题,但它的主题又都被加了版权信息,故意让人找不到版权信息的修改位置. 你如果去footer.php里面删除版权信息(技术支持:web主题公园) ...

  4. [django]Django的css、image和js静态文件生产环境配置

    前言:在Django中HTML文件如果采用外联的方式引入css,js文件或者image图片,一般采用<link rel="stylesheet" href="../ ...

  5. node.js grunt文件压缩

    对于前段来说,熟悉node的人其实还并不是太多,如果您想入门一门后端语言我建议还是从node入手最好. 我也是最近开始学习node,来谈谈近期对node的学习的心得. 提到node首先就是要安装一大堆 ...

  6. 详解Js中文件读取机制

    前言,文件读取是提高应用体验度的必须接口,应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file"&g ...

  7. iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

    iOS之在webView中引入本地html,image,js,css文件的方法   2014-12-08 20:00:16CSDN-sky_2016-点击数:10292     项目需求 最近开发的项 ...

  8. 前端使用js读取文件

    最近同时问我js能不能读取本地文件: 想起以前看到js读取本地文件的文章,然后自己写了个demo. ps:这有点想Java的IO流,但是又有差别. 首先我们定义一个input标签type=" ...

  9. asp.net和js读取文件的MD5值的方法

    前言 文件的md5值,即文件签名,为了验证文件的正确性,是否被恶意篡改等.每个文件有一个唯一的md5值. 最近公司开发的app文件包的校验就有用到文件md5值. 一.asp.net获取 ①和上传文件一 ...

随机推荐

  1. 网络编程(二)--TCP协议、基于tcp协议的套接字socket

    一.TCP协议(Transmission Control Protocol 传输控制协议) 1.可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会 ...

  2. Python实现斐波那契数列,九九乘法表,金字塔方法。

    斐波那契数列普通函数实现 #普通函数 def fb(max): a,b=0,1 while a<max: print(a) a,b=b,a+b fb(100) 递归实现方法1 def fb1(m ...

  3. python基础语法17 面向对象4 多态,抽象类,鸭子类型,绑定方法classmethod与staticmethod,isinstance与issubclass,反射

    多态 1.什么是多态? 多态指的是同一种类型的事物,不同的形态. 2.多态的目的: “多态” 也称之为 “多态性”,目的是为了 在不知道对象具体类型的情况下,统一对象调用方法的规范(比如:名字). 多 ...

  4. amp加载速度比标准移动页面快85%

    6月13日,谷歌合作伙伴大会上Oliver Vidinovski先生(Google Global Head of eCommerce - CS/GCS) 释放了一个信息:amp加载速度比标准移动页面快 ...

  5. 【oracle】去重

    基本去重: SELECT DISTINCT * FROM TABLE; 其他去重: 待添加

  6. 【java异常】expected at least 1 bean which qualifies as autowire candidate for this depende

    1.查看接口实现类是否加入注解,如service.repository等 2.查看spring配置文件是否自动扫描包    <context:component-scan base-packag ...

  7. Visual Studio源服务器缓存

    您是否想过Visual Studio 2008/2010在哪里存储从源服务器下载的源文件?默认情况下,它们会放在Local Settings\Applications Data\SourceServe ...

  8. ORM常用的13个方法

    介绍一个可以以py脚本方式运行ORM操作的方法: 可在项目内新建个py文件,复制项目内manage.py文件中的以下代码: if __name__ == "__main__": o ...

  9. selenium--操作JS弹框

    前戏 我们常见的弹框有三种,一种是alert弹框,一种是prompt弹框,还有一种是confirm弹框那他们有什么不同呢?不同点就是他们长的不一样,alert弹框有一段文字和一个确定按钮,如下 在来看 ...

  10. 【cf比赛记录】Educational Codeforces Round 78 (Rated for Div. 2)

    比赛传送门 A. Shuffle Hashing 题意:加密字符串.可以把字符串的字母打乱后再从前面以及后面接上字符串.问加密后的字符串是否符合加密规则. 题解:字符串的长度很短,直接暴力搜索所有情况 ...