。近期做的是对现有项目进行重构。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导入文件内容的更多相关文章

  1. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  2. ASP.NET MVC 导出CSV文件

    ASP.NET MVC   导出CSV文件.直接贴代码 /// <summary> /// ASP.NET MVC导出CSV文件Demo1 /// </summary> /// ...

  3. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件

    小程序导入,别人导出的数据库json文件,错误信息如下: 导入数据库失败, Error: Poll error, 导入数据任务(id:373985)异常,错误信息:解析导入文件错误,请检查导入文件内容 ...

  4. asp.net mvc + javascript生成下载文件

    近期做的是对现有项目进行重构.WEB FROM改成MVC,其实也算是推倒重来了. 里面有一个导出功能,将数据输出成txt文件,供下载.原先的做法是有一个隐藏的iframe,在这个iframe的页面中设 ...

  5. ASP.NET MVC上传文件----uploadify的使用

    课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件.由于时间的关系,故采用第三方插件:uploadify. upl ...

  6. ASP.NET MVC实现Excel文件的上传下载

    在应用系统开发当中,文件的上传和下载是非常普遍的需求.在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest.webclient等),而且多采用异步 ...

  7. ASP.NET MVC下使用文件上传

    这里我通过使用uploadify组件来实现异步无刷新多文件上传功能. 1.首先下载组件包uploadify,我这里使用的版本是3.1 2.下载后解压,将组件包拷贝到MVC项目中 3.  根目录下添加新 ...

  8. 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]

    Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件的 Javascript 组件. This project attempts to achi ...

  9. Asp.Net MVC 文件管理Demo(文件展示,上传,下载,压缩,文件重命名等)

    之前 ,有想做一个文件管理页面. 参考了 许多资料,终于完成了一个基于Asp.net MVC 的文件管理Demo.界面如下.   一,实现功能及相关技术 文件管理Demo基于Asp.NET MVC , ...

随机推荐

  1. 16. PLUGINS

    16. PLUGINS PLUGINS表提供有关服务器插件的信息. PLUGINS表有以下列: PLUGIN_NAME :用于在诸如INSTALL PLUGIN和UNINSTALL PLUGIN之类的 ...

  2. cxLookupCombobox的多字段模糊匹配

    查了网上很多资料,懒人输入:通过程序使用过滤对话达到自己的目的: 用到cxFilter单元: cbb_DoctorOrder.Properties.View.DataController.Filter ...

  3. zoj 2723 Semi-Prime(set)

    Semi-Prime Time Limit: 2 Seconds      Memory Limit: 65536 KB Prime Number Definition An integer grea ...

  4. 64.JPA命名策略【从零开始学Spring Boot】

    [从零开始学习Spirng Boot-常见异常汇总] 在(39.2). Spring Boot Shiro权限管理[从零开始学Spring Boot] 这一章节中有人碰到这样一个问题"导入的 ...

  5. hdu 4460spfa用map来实现

    #include<stdio.h> #include<string.h>   #include <iostream> #include <algorithm& ...

  6. [NOIP1999] 提高组 洛谷P1016 旅行家的预算

    题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1.汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2.出发点每升汽油价格P和沿 ...

  7. 一个开发的Linux使用心得总结

    Liunx介绍 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协 ...

  8. [HDU4607]Park Visit(树上最长链)

    HDU#4607. Park Visit 题目描述 Claire and her little friend, ykwd, are travelling in Shevchenko's Park! T ...

  9. mybatis <!-- useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中 -->

    <!-- useGeneratedKeys="true"把新增加的主键赋值到自己定义的keyProperty(id)中 -->

  10. django 简易博客开发 4 comments库使用及ajax支持

    首先还是贴一下源代码地址  https://github.com/goodspeedcheng/sblog 上一篇文章我们介绍了静态文件使用以及如何使用from实现对blog的增删改,这篇将介绍如何给 ...