本文主要是介绍关于ashx+ajax+formData实现文件excel文件的导入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
关于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控件
这篇关于关于ashx+ajax+formData实现文件excel文件的导入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!