引言

    最近公司项目全部转向前端化,故所有aspx页面业务逻辑尽可能的转到用户控件前台页面完成。以方便每次发布项目时只是替换前端页面不会影响客户体验。

既然转到前台逻辑,那么必须走后台的业务也就单独封装了一个公共一般处理程序,用CMD命令方式生成DLL。项目引用该DLL,每次有更新后台方法生成新的DLL替换原有的,避免影响线上客户。

  有了这些需求铺垫,现在故针对Excel导入或者导出做了后台处理方案。

前台js获取ext:FileUploadField控件选中值上传提交至服务器一般处理程序:

var file = App.FileUploadID.getEl().down('input[type=file]').dom.files[0];
if (file == undefined) {
Alert("请选择Excel文件!");
} else {
var reader = new FileReader();
reader.onload = (function (theFile) {
return function (e) {
$.ajax({
type: "post",
url: "/CommonMethodHandler.ashx",
data: "Type=1&reader=" + encodeURIComponent(e.target.result),
success: function (result) {
Alert(result);
}
});
};
})(file);
reader.readAsDataURL(file);
}

js相关涉及到的知识点不做过多解释,如有疑问,自行百度了解。

后台C#代码:

public void TestRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string Type = context.Request.Params["Type"];
string result = "";
switch (Type)
{
case "1":
result = TestExcelImport(context);
context.Response.Write(result);
break;
}
} public string TestExcelImport(HttpContext context)
{
try
{
string str = context.Request["reader"];
var reader = str.Split(',')[1];
byte[] bytes = Convert.FromBase64String(reader);
if (bytes == null)
{
return "请选择Excel文件";
}
else
{
DataTable dataTable = new DataTable();
using (MemoryStream memoryStream = new MemoryStream(bytes))
{
dataTable = ExcelDll.TranslateToTable(memoryStream, 0);//封装DLL,请自行百度内存流转dataTable
dataTable.TableName = "TestTempData";
using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(xEncrypt.DecryptText('连接字符串'), SqlBulkCopyOptions.UseInternalTransaction))
{
try
{
sqlbulkcopy.DestinationTableName = "TestTempData";
sqlbulkcopy.WriteToServer(dataTable);
}
catch (System.Exception ex)
{
throw ex;
}
}
}
return "导入成功";
}
}
catch (Exception ex)
{
return ex.Message;
}
}

导入就实现了,导出请参考另外文章《使用Aspose插件对Excel操作

Ext.Net一般处理程序上传文件的更多相关文章

  1. 一般处理程序上传文件(html表单上传、aspx页面上传)

    html 表单上传文件        一般处理程序由于没有 apsx 页面的整个模型和控件的创建周期,而比较有效率.这里写一个用 html 表单进行文件上传的示例.        1. 表单元素选用 ...

  2. ext上传文件到mysql上

    不废话,上代码: controller如下: /** * 上传附件 * @param request * @param baseBlob * @param response */ @RequestMa ...

  3. asp.net 一般处理程序接收上传文件的问题

    在使用Html+ashx处理文件上传时,遇到上传文件超过4M的问题,首先HTML代码如下: <!DOCTYPE html> <html> <head> <me ...

  4. Asp.net上传文件后台通过二进制流发送到其他Url保存

    实际情况一般有单独的站点存放静态文件,比如图片.office文档等.A站点的操作需要上传文件到B站点, 下面介绍一种方法通过System.Net.WebClient类的UploadData方法 . u ...

  5. NSURLSession/NSURLConnection的上传文件方法(已做了更新)

    最好的学习方法就是 领悟 + 证悟. 此篇文章的理论基础主要是与HTTP网络通信协议相关.为集中精力,可以先把TCP/IP协议这些置之不理,也就是先只关注HTTP的请求和响应的结构.HTTP完整的原理 ...

  6. ajax上传文件,并检查文件类型、检查文件大小

    1.使用ajaxfileupload.js的插件,但是对插件做了一处修改,才能够正常使用 修改的部分如下: uploadHttpData: function (r, type) { var data ...

  7. easy ui 异步上传文件,跨域

    easy ui 跨域上传文件,代码如下: 1.html代码:(这段代码是个win窗体,我在点击上传图片按钮然后弹出一个上传图片的窗体,选择图片再进行上传,这样在form提交时,提交的参数会少一点.) ...

  8. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  9. ajax实现上传文件

      1.html部分 <input style="width: 280px" type="file" name="upLoadProjectPl ...

随机推荐

  1. hdu 6806 Equal Sentences 找规律

    题意: 给你一个有n个单词的单词串S,对这n个单词进行排列组合形成新的一个单词串T,如果在S中任意某个单词所在位置,和这个单词在T中所在位置之差的绝对值小于等于1,那么就说S和T串相等 让你求S一共有 ...

  2. java——API

    API定义: 可以网上下载一个jdk_api文档用来查找一些函数. 匿名对象的创建  匿名对象做为返回值和参数实例: Random的使用:

  3. Codeforces Round #570 (Div. 3) B. Equalize Prices、C. Computer Game、D. Candy Box (easy version)、E. Subsequences (easy version)

    B题题意: 给你n个物品的价格,你需要找出来一个值b,使得每一个物品与这个b的差值的绝对值小于k.找到最大的b输出,如果找不到,那就输出-1 题解: 很简单嘛,找到上下限直接二分.下限就是所有物品中最 ...

  4. java调用http接口的几种方式总结

    本文参考: https://blog.csdn.net/fightingXia/article/details/71775516 https://www.cnblogs.com/jeffen/p/69 ...

  5. React Native & Security

    React Native & Security https://reactnative.dev/docs/security React Native blogs https://reactna ...

  6. Web Design Trends for 2017

    Web Design Trends for 2017 https://www.awwwards.com/web-design-trends-for-2017.html https://usersnap ...

  7. js 运算符的执行顺序

    js 运算符的执行顺序 js 运算符优先级 Operator Precedence 下表从最高(21)到最低(1)优先顺序排列 left-to-right 从左到右 / 先左后右 right-to-l ...

  8. DataBase All in One

    DataBase All in One DB SQL: relational database management system NoSQL(Not only SQL / Non SQL): key ...

  9. leetcode solution cracked tutorial

    leetcode solution cracked tutorial problemset https://leetcode.com/problemset/all/ Top Interview Que ...

  10. tree ignore & bash & cmd

    tree ignore & bash & cmd tree ignore https://unix.stackexchange.com/a/47806 https://zaiste.n ...