
<form action="http://localhost:8081/thingsparse/addorupdthingsparse" method="post" enctype="multipart/form-data">
<input type="file" name="file" value="选择jar包"/>
<input id="submit_form" type="submit" class="btn btn-success save" value="保存"/>
</form>

前端仅使用传统形式来上传文件. 提交按钮直接提交到后端上传文件 form,而无需编写任何额外的js.

值得注意的是: 每个表单参数都需要具有名称属性和表单表单的enctype =“ multipart / form-data”.

实际上,关键代码是文件的接收. 至于后续的存储操作,它们基本上是对IO流的操作. 有关更多信息,请参考“ Java实现用户头像上传”.

/**
* 解析新建编辑
*
* @param String
* newThingsParse是一个拥有ThingsParse类结构的json字符串
* @return
*/
@RequestMapping(value = "/addorupdthingsparse")
public ModelAndView saveThingsParse(MultipartFile file, HttpServletRequest request) {
String idStr = request.getParameter("thingsparse_id");
ThingsParse thingParse = new ThingsParse();//将被存储于mongodb的实例
String filePath = "";// jar包的路径
if (!file.isEmpty()) {
File temp = new File("");
filePath = temp.getAbsolutePath() + "\\" + file.getOriginalFilename();
BufferedOutputStream out;
try {
out = new BufferedOutputStream(new FileOutputStream(new File(filePath)));
out.write(file.getBytes());
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
logger.info("保存的jar包路径是:" + filePath);//output:保存的jar包路径是:D:\workspace\wxgz\json.jar
thingParse.setJarPackage(filePath);
thingParse.setAuthor(request.getParameter("author"));
thingParse.setDirection(request.getParameter("direction"));
thingParse.setEntranceClass(request.getParameter("entrance_class"));
thingParse.setEntranceMethod(request.getParameter("entrance_method"));
thingParse.setName(request.getParameter("thingsparse_name"));
thingParse.setTestData(request.getParameter("test_data"));
thingParse.setVersion(request.getParameter("version"));
if (idStr == null || "".equals(idStr)) {// 新增
// 获取当前系统时间
Calendar now = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowStr = sdf.format(now.getTime());
// 将物解析实例的创建时间赋值
thingParse.setCreateTime(nowStr);
// 存储
thingsParseRepository.save(thingParse);
} else {// 编辑
thingParse.set_id(new ObjectId(idStr));
if(file.isEmpty()){
thingParse.setJarPackage(request.getParameter("jar_package"));
}
thingParse.setCreateTime(request.getParameter("thingsparse_createtime"));
thingsParseRepository.save(thingParse);
}
String listUrl = "redirect:http://localhost:8081/thingsparse/thingsparselist";
return new ModelAndView(listUrl);//后台重定向
}
Web应用程序中的文件上传是一种相对通用的功能. 最简单的表单提交基本上可以满足大多数申请的要求.
关键思想是前端表单表单选择文件并提交上传文件 form,后端使用MultipartFile类型接收文件. 要将文件保存到本地磁盘,请参阅“文件存储”和“ Java实现用户头像上传”.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-288533-1.html
美国倡导的自由
学术界和网上众说纷纭