一. 導入兩個jar包
commons-fileupload-1.3.2.jar和commons-io-2.5.jar
二. 創(chuàng)建jsp文件
<form action="/uploadSave" method="post" enctype="multipart/form-data"> <li>文件上傳: <input type="file" name="file"> </li> <li> <input type="submit" value="上傳"> </li> </form>
三. 創(chuàng)建控制器接收
@Controller
public class UploadController {
    @RequestMapping("/upload")
    public String upload(){
        return "upload";
    }
    @RequestMapping("/uploadSave")
    @ResponseBody
    public Map uploadSave(MultipartFile file){
        String fileName = file.getOriginalFilename();
        String ext = fileName.substring(fileName.lastIndexOf("."));
        String newName = UUID.randomUUID() + ext;
        //得到新的文件名
        String realpath = ResourceBundle.getBundle("config").getString("uppath");
        //讀取src下config.properties配置上傳路徑
        File targetFile = new File(realpath, newName);
        if (!targetFile.exists()) {
            targetFile.mkdirs();
        }
        try {
            file.transferTo(targetFile);
        } catch (IOException e) {
            e.printStackTrace();
        }
        Map map =  new HashMap<>();
        map.put("newName",newName);
        return map;
    }
}將文件上傳至設(shè)置目錄,并在瀏覽器顯示json格式
{"newName":"984f41e3-14e3-4745-8698-9522fdb06c24.jpg"}在上傳文件時需要在配置文件中使用 Spring 的 CommonsMultipartResolver 類配置 MultipartResolver 用于文件上傳,應(yīng)用的配置文件 springmvc-servlet.xml 的代碼如下:
<!-- 配置MultipartResolver,用于上傳文件,使用spring的CommonsMultipartResolver --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="5000000" /> <property name="defaultEncoding" value="UTF-8" /> </bean>
相關(guān):
