asp.net mvc + javascript导入文件内容
。近期做的是对现有项目进行重构。WEB FROM改成MVC,其实也算是推倒重来了。
里面有一个导入功能,将文件上传。原先的做法是有一个隐藏的iframe,在这个iframe的页面中设置一个表单form,form中有一个文件上传控件。而在服务器端,接收到上传文件后,真的先将文件保存,然后读取之。
好奇怪的做法啊。将用户文件内容读入,然后利用之,不必真的将文件先保存下来的,因为这是临时文件,没有保存的价值。完全可以将上传的文件内容直接读出,用完即弃。
其次,我理解原先为何要用一个隐藏的iframe。因为上传文件需要提交,而提交页面会导致刷新,为了避免页面内容刷新,于是搞了个隐藏的iframe,让它来负责提交。好是好,就是要多搞一个页面。
在新项目里面,前端,文件由ajax负责提交;服务器端,接收文件后直接处理,不保存下来,用完即弃:
前端:
<!-- 隐藏的上传控件,onchange时就触发提交 -->
<input type="file" id="fileImportData" name="fileImportData" onchange="f_pointXY.importData()" style="display:none;" />
<!-- 导入按钮,点击后就触发上传控件的点击事件,弹出文件选择框 -->
<input type="button" value="导入" class="btn mini minilt" onclick='javascript:document.getElementById("fileImportData").click();' />
<script type="text/javascript">
var f_pointXY = function () {
function importData() {
$("#formImport").ajaxSubmit({
url: "@Url.StaticFile("~/Common/YongHai/importData/")" + $("#txt_SMID").val(),
type: 'post',
data: {},
success: function (data) {
if (data.substr(0, 2) == "OK") {
alert("导入成功");
} else {
alert(data);
}
},
error: function (e) {
alert(e);
}
});
}
return {
importData: function () {
importData();
}
};
}();
</script>
服务器端:
[HttpPost]
public ActionResult importData(int id)
{
if (Request.Files.Count == 0)
{
return Content("接收上传数据失败", "text/html");
}
string msg = "OK";
HttpPostedFileBase fb = Request.Files[0];
string[] Acs_FilePath = fb.FileName.Split('\\');
string Acs_FileName = Acs_FilePath[Acs_FilePath.Length - 1];
string Acs_FileType = Acs_FileName.Split('.')[1].ToLower();
string xyType = Request["xyType"] ?? "";
using (Stream fs = fb.InputStream)
{
int fileLen = fb.ContentLength;
byte[] input = new byte[fileLen];
fs.Read(input, 0, fileLen);
string str = System.Text.Encoding.UTF8.GetString(input);
msg += str;
}
END:
return Content(msg, "text/html");
}
这样,点击导入按钮,即可上传并导入矣。
猴赛雷。
asp.net mvc + javascript导入文件内容的更多相关文章
- [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传
原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...
- ASP.NET MVC 导出CSV文件
ASP.NET MVC 导出CSV文件.直接贴代码 /// <summary> /// ASP.NET MVC导出CSV文件Demo1 /// </summary> /// ...
- 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...
- asp.net mvc + javascript生成下载文件
近期做的是对现有项目进行重构.WEB FROM改成MVC,其实也算是推倒重来了. 里面有一个导出功能,将数据输出成txt文件,供下载.原先的做法是有一个隐藏的iframe,在这个iframe的页面中设 ...
- ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...
- ASP.NET MVC实现Excel文件的上传下载
在应用系统开发当中,文件的上传和下载是非常普遍的需求.在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest.webclient等),而且多采用异步 ...
- ASP.NET MVC下使用文件上传
这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3. 根目录下添加新 ...
- 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achi ...
- Asp.Net MVC 文件管理Demo(文件展示,上传,下载,压缩,文件重命名等)
之前 ,有想做一个文件管理页面. 参考了 许多资料,终于完成了一个基于Asp.net MVC 的文件管理Demo.界面如下. 一,实现功能及相关技术 文件管理Demo基于Asp.NET MVC , ...
随机推荐
- 微信小程序显示cms里的html文章
首先在cms模版中将html文章转化为json数据,识别图片,文本和换行,过滤掉样式和标签.这里是用PHP的正则表达式函数来实现的,$content是cms里的html文章. <?php $_a ...
- 如何将数据放入下拉框List值
最近在做下拉框,里面放入值大概有这几种 //仓库业务类型 第一种 model.addAttribute("warehouseBizTypeList", basePropertySe ...
- Photoshop保存的各种格式详解
1.PSD(*.PSD) PSD格式是Adobe Photoshop软件自身的格式,这种格式可以存储Photoshop中所有的图层,通道.参考线.注解和颜色模式等信息.在保存图像时,若图像中包含有层, ...
- ELK的简单安装使用
ELK ELK是什么? Elasticsearch LogStash Kibana 1,简单的安装 我采用的是本地window环境: 下载的包如下: 首先安装的是jdk8,安装完成之后,设 ...
- ZOJ - 3781 Paint the Grid Reloaded 题解
题目大意: 给一个n*m的X O构成的格子,对一个点操作可以使与它相连通的所有一样颜色的格子翻转颜色(X—>O或O—>X),问给定的矩阵最少操作多少次可以全部变成一样的颜色. 思路: 1. ...
- 关于datetime,date,timestamp,year,time时间类型小结
关于datetime,date,timestamp,year,time时间类型 datetime占用8个字节 日期范围:”1000-01-01 00:00:00” 到”9999-12-31 23:59 ...
- BZOJ1710: [Usaco2007 Open]Cheappal 廉价回文
len<=2000的字符串上,给出删掉和添加每种字符的花费,求把字符串变成回文串的最小花费. 首先每个字符添加和删除是一样的,因此花费在添加和删掉每个字符的花费中取小的. 如果每个字符的花费都是 ...
- JS变量写到HTML页面中并修改变量值(前台处理数据序号问题)
有时候我们在前台需要对序号进行处理,我们需要将JS变量写到页面中进行显示. 第一种方式:后台处理 第二种方式:JS中定义全局变量,然后进行显示,可以书写一个JS函数对不同的需要进行不同的替换,也就可以 ...
- HTML介绍&常用的标签
HTML介绍 1. web服务器本质 import socket s = socket.socket() s.bind(('127.0.0.1', 8080)) s.listen(5) while T ...
- OC-runtime 的温习
-.runtime简介 runtime简称运行时,OC就是运行时机制,也就是运行时的一些机制,其中最主要的是消息机制: 对于C语言,函数的调用在编辑的时候,会决定调用哪个函数: 对于OC的函数,属于动 ...