JS实现文件自动上传
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实现文件自动上传的更多相关文章
- 在CabloyJS中将Webpack生成的文件自动上传到阿里云OSS
背景 阿里云OSS提供了一个Webpack插件,可在Webpack打包结束后将webpack生成的文件自动上传到阿里云OSS中 下面看看在CabloyJS中如何使用该插件 新建项目,并配置MySQL连 ...
- Node.js写文件的三种方法
Node.js写文件的三种方式: 1.通过管道流写文件 采用管道传输二进制流,可以实现自动管理流,可写流不必当心可读流流的过快而崩溃,适合大小文件传输(推荐) var readStream = fs. ...
- web主题公园版权信息破解:script.js加密文件
很多人会使用web主题公园网站的免费worldpress主题,但它的主题又都被加了版权信息,故意让人找不到版权信息的修改位置. 你如果去footer.php里面删除版权信息(技术支持:web主题公园) ...
- [django]Django的css、image和js静态文件生产环境配置
前言:在Django中HTML文件如果采用外联的方式引入css,js文件或者image图片,一般采用<link rel="stylesheet" href="../ ...
- node.js grunt文件压缩
对于前段来说,熟悉node的人其实还并不是太多,如果您想入门一门后端语言我建议还是从node入手最好. 我也是最近开始学习node,来谈谈近期对node的学习的心得. 提到node首先就是要安装一大堆 ...
- 详解Js中文件读取机制
前言,文件读取是提高应用体验度的必须接口,应用场景中需求很频繁. Js处理文件读取,由于处于安全方面的考虑,在2000年以前,都是以“<input type="file"&g ...
- iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ
iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项 ...
- 前端使用js读取文件
最近同时问我js能不能读取本地文件: 想起以前看到js读取本地文件的文章,然后自己写了个demo. ps:这有点想Java的IO流,但是又有差别. 首先我们定义一个input标签type=" ...
- asp.net和js读取文件的MD5值的方法
前言 文件的md5值,即文件签名,为了验证文件的正确性,是否被恶意篡改等.每个文件有一个唯一的md5值. 最近公司开发的app文件包的校验就有用到文件md5值. 一.asp.net获取 ①和上传文件一 ...
随机推荐
- 一文搞定PGA_LGA_BGA
概述 什么是LGA.PGA.BGA类型的封装?众所周知,CPU封装的类型主要为三种:LGA,PGA,BGA,其中LGA封装是最常见的,intel处理器都是采用这种类型的封装,而PGA封装则是AMD常用 ...
- pandas基础操作
```python import pandas as pd import numpy as np ``` ```python s = pd.Series([1,3,6,np.nan,44,1]) s ...
- shell之命令代换,将当前路径存放在变量中,然后使用变量
重要的 命令代换`` 反引号 shell先执行该命令,然后将命令的结果存放在 变量中 例如 var=`pwd` echo $var 也可以用其$()替换 var=$(date) echo $var 删 ...
- ThinkPHP5框架引入的css等外部资源文件没有生效
静态资源文件一般是放在public目录里,不只是css,只要是静态资源文件都没有显示出来. (更好的阅读体验可访问 这里 ) 问题陈述 文件结构 文件内容 三个文件分别为:Index.php.test ...
- 通过async与await实现高效并发
withTimeoutOrNull: 在上一次https://www.cnblogs.com/webor2006/p/12010388.html中对于协程的超时机制进行了一个学习,上次用的是withT ...
- 17-C#笔记-类
1. 构造函数.析构函数 修饰词的作用域仅一行. 类的默认访问标识符是 internal,成员的默认访问标识符是 private. using System; namespace LineApplic ...
- ubuntu16.04深度学习环境配置
https://www.lizenghai.com/archives/14651.html https://blog.csdn.net/qq_40936141/article/details/8119 ...
- 题解 P4305 【[JLOI2011]不重复数字】
来一波用vector的最短代码题解 P4305 [JLOI2011]不重复数字 关于hash表的部分大家可以看一看其他的题解,我就不说了 不定长数组vector的几个基本用法: 定义: vector& ...
- Random Access Iterator 徐州网络赛(树形dp)
Random Access Iterator \[ Time Limit: 4000 ms \quad Memory Limit: 262144 kB \] 题意 给出伪代码,问按着伪代码在树上跑,能 ...
- requirements 操作
requirements作用描述: 很多 Python 项目中经常会包含一个 requirements.txt 文件,里面内容是项目的依赖包及其对应版本号的信息列表, 即项目依赖关系清单,其作用是用来 ...