pom.xml
<!-- 导入poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.8</version>
</dependency>
<!-- 上传 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
springMVC.xml:
<!-- 文件上传配置 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 上传的最大限制 -->
<property name="maxUploadSize" value="209715200" />
<!-- 默认编码 -->
<property name="defaultEncoding" value="UTF-8" />
<!-- 上传文件的解析 -->
<property name="resolveLazily" value="true" />
</bean>
jsp:
<input type="file" class="excel_file" accept=".xlsx,.xls;">
<div class="operation_btn">
<input onclick="uploadFile();" class="comfirm_btns" type="button" value="开始导入"/>
</div>
jsp页面效果:
js(注意:要用FormData传递参数,contentType,processData这两个参数需要设置上):
// 1.导入功能
function uploadFile() {
var formData = new FormData();
var excelFile = $(".excel_file")[0].files[0];
if (excelFile == null) {
alert("请选择Excel文件");
return;
}
formData.append("excelFile", excelFile);
$.ajax({
type: "POST",
url: webPath.webRoot + "/uploadProductExcel/upload.json",
data: formData,
dataType: "json",
contentType: false, //不设置内容类型
processData: false, //不处理数据
success: function () {
alert("成功");
},
error: function () {
alert("失败");
}
});
}
controller:
@Controller
@RequestMapping("/uploadProductExcel")
public class UploadExcelController {
//1.导入(上传文件)
@RequestMapping("/upload")
public void uploadProductExcel(Model model, @RequestParam(value = "excelFile") MultipartFile excelFile) {
}
}