一、首先必須配置beanhtml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="10485760"/> <property name="resolveLazily" value="true"/> <property name="maxInMemorySize" value="4096"/> <property name="defaultEncoding" value="UTF-8"/> </bean>
二、ftl頁面代碼java
<form id="fileForm" method="post" enctype="multipart/form-data"> <input type="text" id="someText" name="someText"> <input type="file" name="file" id="file"> </form>
三、js代碼web
var someText= $("#someText").val(); var file = $("#file")[0].files[0]; //獲取標籤值好像函數與瀏覽器不兼容,網上的大可能是經過$("#file").files[0]獲取, 我這裏必須經過$("#file")[0].files[0]才能獲取到值 var formData = new FormData(); formData.append('someText', someText); formData.append('file', file); $.ajax({ type:"post", url:'請求路徑', data:formData, dataType:'json', cache:false, contentType: false, processData: false, success: function(data) { // 結果處理 } });
四、後臺代碼ajax
@RequestMapping(value = "路徑", method = { RequestMethod.GET, RequestMethod.POST })
@ResponseBody
public Object uploadFile(@RequestParam(value = "someText", required = false) String someText,
@RequestParam(value = "file", required = false) MultipartFile file,
HttpServletRequest request) {//required = false才能獲取到值
XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
XSSFSheet sheetAt = workbook.getSheetAt(numSheet);
if (sheetAt == null) {
continue;
}
// 循環行Row
for (int rowNum = 0; rowNum <= sheetAt.getLastRowNum(); rowNum++) {
XSSFRow row = sheetAt.getRow(rowNum);
if (row == null) {
continue;
}
// 循環列Cell
for (int cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++) {
//在此可進行獲取單元格值併入庫
getValue(row,cellNum);
}
}
}
}
//單元格類型轉換並獲取值
private String getValue(XSSFRow row, int cellNum) {
XSSFCell cell = row.getCell(cellNum);
if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) {
return String.valueOf(cell.getBooleanCellValue());
} else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) {
return String.valueOf((int) cell.getNumericCellValue());
} else {
return String.valueOf(cell.getStringCellValue()).equals("") ? "" : String
.valueOf(cell.getStringCellValue());
}
}