虽然MVC上传文件是一个简单的操作,但作为小白的我还是走了不少弯路,今天得到一位大神指导,明白了大致的一个过程。
首先,写上带文件选择input的表单,注意表单中需要加一项enctype=“multipart/form-data”,表示提交的表单数据中带有多种类型的数据,如文件
<form enctype="multipart/form-data" class="am-form tpl-form-line-form" action="add_product_submit" method="post">
<input type="file" name="photo_file">
</form>
然后就是Controller类了
@RequestMapping(value = "/add_product_submit")
public String addProduct(@RequestParam("photo_file") CommonsMultipartFile photo_file) throws IOException {
String path = photo_file.getOriginalFilename();// 获取上传的文件名
System.out.println("路径:" + path);
String dir = getClass().getResource("/").getPath();// 获取class文件路径/D:/Profession/ssmStructure/CurriculumDesign/FlowerPet/target/flowerpet/WEB-INF/classes/
System.out.println("dir:" + dir);
dir = dir.substring(0, dir.indexOf("WEB-INF"));// 获取资源文件路径/D:/Profession/ssmStructure/CurriculumDesign/FlowerPet/target/flowerpet/
System.out.println("dir:" + dir);
File newFile = new File(dir + "Images/" + path);// 创建一个文件对象,指定文件保存在哪里(完整路径)
if (!newFile.exists()) {
newFile.mkdirs();
}
photo_file.transferTo(newFile);// 转化,即上传到指定服务器指定目录
return "*******";
}
然后就可以了,这么看来确实挺简单的哈