springMVC的文件上传

来源:互联网 发布:plc编程培训最好机构 编辑:程序博客网 时间:2024/04/26 14:33

这个方法用到了formDate对象已经springMVC的CommonsMultipartFile对象 transferTo(File)方法


jsp

<div>    <form id= "uploadForm">        <input id="filess" style="margin: auto" type="file" name="filess"/><hr>         <input class="btn blue" type="button" value="上传" onclick="doUpload()" />                </form></div> 

js

//用formData对象上传文件function doUpload() {    var formData = new FormData($( "#uploadForm" )[0]);//第一个文件,这里只上传一个    $.ajax({        url: 'device/uploadFiles' ,//后台地址        type: 'POST',        data: formData,        async: false,        cache: false,        contentType: false,        processData: false,    });}

controller

    @RequestMapping(value = "/uploadFiles")    @ResponseBody    public  void uploadFiles(@RequestParam(value = "filess",required = false) CommonsMultipartFile files, HttpServletRequest request) throws IOException {        if(!files.isEmpty()){            // 从数据库中查找文件保存路径            String config = configService.findByName("upload_dir");            String path = config + File.separator + "deviceFile" + File.separator;            String fileName = sdf.format(new Date()) + "_" + files.getOriginalFilename();            InputStreamReader isr = new InputStreamReader(files.getInputStream());            File targetFile = new File(path, fileName);            if (!targetFile.exists()) {                targetFile.mkdirs();//如果文件夹不存在,新建一个            }            try {                files.transferTo(targetFile);//CommonsMultipartFile的上传方法            } catch (IOException e) {                e.printStackTrace();            }            BufferedReader bufferedReader = new BufferedReader(isr);            isr.close();            bufferedReader.close();        }    }