关于ashx+ajax+formData实现文件excel文件的导入

10 篇文章 0 订阅
4 篇文章 0 订阅

关于formData的使用可以去看基本操作

<p class="btnImport-p">
<button class="btnImport" title="上传" type="button" express="<%=infos.warehouseExpress%>">点击上传表格</button>      		
</p>

反正就知道有一个上传按钮叫Input type是file就行了;
接下来就是ajax 的使用了;

var uploadFile = layero.find("#uploadFile")[0].files[0]; //找到上传文件
formData.append("file", uploadFile); //上传文件,文件路径
$.ajax({
     url: '.ashx',
     dataType: 'json',
     type: 'POST',
     data: formData,

后台的ashx地址,这边只展示部分代码,记住FormData需要配合POST使用不然上传数据会出错。
接下来就是ashx后台的操作。
关于怎么获取formData里面的值,其实其已经和form表单一样了,只需要使用requet.from就可以获取了。
但是里面存储的文件流操作不能这样。

if (context.Request.Files.Count > 0)
 {
       HttpPostedFile file = context.Request.Files["file"];
       //进行excel文件的读取
       string Suffix = System.IO.Path.GetExtension(file.FileName).ToLower();//获取文件后缀名
       if (Suffix == ".xlsx" || Suffix == ".xls" || Suffix == ".csv")
       {
           string filePath = context.Server.MapPath("/userIndex/uploadFiles/") + System.IO.Path.GetFileName(file.FileName); //拿到文件保存路径,实现文件上传
           file.SaveAs(filePath);
           msg = "文件上传成功";
       }
       else {
           code = 402;
           msg = "文件格式不正确,只支持(xlsx/xls/csv)";
       }
       var data = new { code = code, msg = msg,a=Suffix};
       JavaScriptSerializer json = new JavaScriptSerializer();
       var res = json.Serialize(data);

       context.Response.Write(res);

只贴部分代码,我这边因为开发需要只获取excel里面格式的文件,如果有需求的话,可以获取图片文件,啥文件类型都可以存储

if (context.Request.Files.Count > 0)
 {
     HttpPostedFile file = context.Request.Files["file"];
     string filePath = context.Server.MapPath("/userIndex/uploadFiles/") + System.IO.Path.GetFileName(file.FileName); //拿到文件保存路径,实现文件上传
    file.SaveAs(filePath);
    }

关键代码就这几句,只需要获取文件路径后面直接进行保存即可。
关于后面进行数据库的批量导入导出,接下来会进行讲解分析。预测使用NPOI控件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值