谨以实际开发中所学到的第一个功能来纪念我的第一篇博客,如有不足之处,万望各位大神不吝指出。
Web项目的开发过程中,通常会用到上传Excel文件的功能。将一个Excel文件从本地文件系统中获取,并将其中的数据存入数据库中以便项目使用。简单来说分为三个步骤:1、前端获取文件;2、后台解析文件;3、数据存入数据库。三个步骤之间的连接控制则由控制层进行整体把控,流程为:前端获取文件--控制层获取文件流--控制层调用文件解析工具类--控制层调用数据存入数据库方法。接下来将对以上三个步骤进行逐步说明。并将具体的控制层代码放在最后展示。
第一步:前端获取文件
最开始进行前端获取文件功能的开发时,采用了最方便的原生js进行文件获取,结果被公司前辈狠狠的吐槽了一顿,原因就是样式丑到无与伦比。因此又在原有的基础上对样式进行了进一步的修改。下面会将代码分为原生和改进两种版本。
1、原生js提供了文件上传的功能,在input元素中,类型修改为"file"即可实现从本地文件系统中获取指定文件的功能。获取到文件后,采用form表单将获取到的信息发送至后台指定路径,进行后续操作。(当然原生js的文件上传功能方便自然是方便的,只是它的样式嘛,只能说用过的都懂)
<script language="JavaScript">
function tijiao(){
$("#myFrom").submit();
}
</script>
<lable style="font-size: 15px;">导入文件:</lable>
<form action="#" method="post" enctype="multipart/form-data" id="myFrom" style="padding-left: 30px;display:inline;" >
<input type="file" name="file" value="" id="file"/>
<input type="button" id="sub" onclick="tijiao()" VALUE="上传" class="queryBtn" style="background-color: #009688">
<input type="text" value="" id="data" name="data" style="display: none;">
</form>
2、在经过前辈的吐槽后,痛定思痛,决定将样式从头到尾的进行一次修改。考虑到不同浏览器的兼容性,不得已做出一些多余的操作,来尽可能的保证不同浏览器的正常使用。为保证以下代码可以复制即用,因此将代码中涉及到框架样式的div等元素进行清除,以下为改进后的代码。
<script language="JavaScript">
var type = '${type}';
var url = "";
var result='';
$(function(){
if(type == "xm"){
url ="../rksqCtrl/importda?type=xm";//根据后台传入不同类型,form表单可提交到不同路径。(本文暂使用一种类型,一个路径)
}
$('#myFrom').attr('action',url);//将路径写入到form表单的属性中
})
function tijiao(){
$("#subbtn").click();
}
function resetClick(){//关闭弹窗
var _index =