81,092
社区成员
发帖
与我相关
我的任务
分享
return "\"" + result + "\"";
注意这里的result是已经声明为String类型的,下面贴出源码。
@RequestMapping(value = "/upload", method = RequestMethod.POST)
@ResponseBody
public String fileUpload(HttpServletRequest request) {
String result = "";
/*
* response.setCharacterEncoding("UTF-8");
* response.setContentType("application/json;charset=utf-8");
*/
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
String path = request.getSession().getServletContext().getRealPath("");
try {
List items = upload.parseRequest(request);
Iterator it = items.iterator();
while (it.hasNext()) {
FileItem item = (FileItem) it.next();
if (item.isFormField()) {
System.out.println("表单的参数名称:" + item.getFieldName()
+ ",对应的参数值:" + item.getString("UTF-8"));
} else {
if (item.getName() != null && !item.getName().equals("")) {
System.out.println("上传文件的大小:" + item.getSize());
System.out.println("上传文件的类型:" + item.getContentType());
System.out.println("上传文件的名称:" + item.getName());
File tempFile = new File(item.getName());
String savePath = path
+ File.separator
+ "backend"
+ File.separator
+ "doc"
+ File.separator
+ new SimpleDateFormat("yyyyMMdd-HHmmss")
.format(new Date())
+ tempFile.getName();
item.write(new File(savePath));
// 获取表数据
List<Map<String, String>> list = ExcelUtil
.readExcelOfTeachers(savePath);
// 对表数据进行迭代筛查
Iterator<Map<String, String>> iterator = list
.iterator();
// 备份遍历的前一个数据元
Map<String, String> oldObj = null;
// 利用HashSet过滤表数据,查重。
HashSet<String> checkRepeat = new HashSet<>();
while (iterator.hasNext()) {
Map<String, String> next = iterator.next();
// 教师名称、工号、手机号码、账号和密码为空则导入失败
if (next.get(ExcelUtil.TCODE).equals("")
|| next.get(ExcelUtil.TNAME).equals("")
|| next.get(ExcelUtil.TMOBILE).equals("")
|| next.get(ExcelUtil.TACCOUNT).equals("")) {
if (next.get(ExcelUtil.TPASSWORD).equals("")) {
iterator.remove();
} else if (oldObj != null) {
return "\"" + "导入失败,工号为:"
+ oldObj.get(ExcelUtil.TCODE)
+ " 的教师之后存在空数据,请修改后重新提交。" + "\"";
} else {
return "\"" + "导入失败,表中第二行存在空数据,请修改后重新提交。"
+ "\"";
}
} else if (next.get(ExcelUtil.TPASSWORD).equals("")) {
// 若密码为空,则默认将教师工号设置成密码
next.put(ExcelUtil.TPASSWORD,
next.get(ExcelUtil.TCODE));
} else {
// 表中存在重复账号则导入失败
if (checkRepeat.contains(next
.get(ExcelUtil.TACCOUNT))) {
return "\"" + "导入失败,账号 : "
+ next.get(ExcelUtil.TACCOUNT)
+ " 在表中已重复,请修改后重新提交。" + "\"";
}
// 记录非重复账号信息
checkRepeat.add(next.get(ExcelUtil.TACCOUNT));
}
// 备份本次迭代数据
oldObj = next;
}
result = tTeacherService.addTeacherList(list);
} else {
result = "没有选择上传文件!";
}
}
}
} catch (Exception e) {
e.printStackTrace();
result = "上传文件不成功!";
}
System.out.println(result);
return "\"" + result + "\"";
}
<mvc:annotation-driven>
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes" value="text/html;charset=UTF-8"></property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>