一、配置
1、*-servlet.xml (WebApploicationContext)
注意下面的commandClass值,
二、代码
1、使用MultipartFile
import org.springframework.web.multipart.MultipartFile;
public class UploadDTO implements Serializable {
private MultipartFile file;
/**
* @return Returns the file.
*/
public MultipartFile getFile() {
return file;
}
/**
* @param file The file to set.
*/
public void setFile(MultipartFile file) {
this.file = file;
}
}
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.validation.BindException;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.support.ByteArrayMultipartFileEditor;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
public class ExcelUpload extends SimpleFormController {
protected ModelAndView onSubmit(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception {
logger.info("Excel upload=================================start");
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("file");
Enumeration names = request.getParameterNames();
while (names.hasMoreElements()) {
String name = (String) names.nextElement();
logger.debug(name+"="+request.getParameter(name));
}
logger.info("Excel upload=================================end");
return super.onSubmit(request, response, command, errors);
}
}
2、不使用MultipartFile
import org.springframework.web.multipart.MultipartFile;
public class UploadDTO implements Serializable {
private byte[] file;
/**
* @return Returns the file.
*/
public byte[] getFile() {
return file;
}
/**
* @param file The file to set.
*/
public void setFile(byte[] file) {
this.file = file;
}
}
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multipartRequest.getFile("file");
logger.debug(Long.toString(multipartFile.getSize()));
logger.info("Excel upload=================================end");
return super.onSubmit(request, response, command, errors);
}
}
附:
1、另存上传文件
2、Excel文件处理(POI - 2.5)
return wb.getNumberOfSheets();
// return sheet.getFirstRowNum();
} catch (Exception e) {
logger.error(e);
// throw new
// BusinessServiceException("未知原因!保存Excel文件时,请不要将鼠标最终定位在Excel中的可以下拉选值的列上。");
}
// ApplicationContext ctx =
// ApplicationWebContexton.getInstance(request);
// IImportExcelTarget excelParser = (IImportExcelTarget)
// ctx.getBean(planCode);
// return excelParser.getTargetList(wb, request,
// insuranceBeginTime,planCode);
return 0;
}
3、request.parameters = 与上传文件同表单的 field value