spring mvc 实现文件上传

html内容:


其中 multiple表示支持多文件上传



//文件上传代码测试
        $("#upload").click(function () {
            var data=new FormData();//创建表单对象
           
            data.append("pic",$("#file_upload")[0].files[0]);
           
            data.append("fname","文件");
            $.ajax({
                 type: "post",
                 url: "http://localhost:1235/spring_mvc_test/uploadController/upload",
                 data: data,
                 contentType : false,
                 processData : false,
                 dataType: "json",
                 success: function(data){
                       alert("id:"+ data.result.userId +"pass:"+data.result.passWord);
                 }

           });


服务端:

(这里没有选择分层,所有逻辑都在controller里实现的)

需要jar包 (commons-fileupload。jar      commons-io.jar)

官方下载地址

http://commons.apache.org/proper/commons-fileupload/

http://commons.apache.org/proper/commons-io/

我用的

commons-fileupload-1.3.3.jar

commons-io-2.6.jar


配置文件添加bean

 
               class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
             
             

        



    @RequestMapping(value = "/uploadController/upload", method = RequestMethod.POST)
    @ResponseBody
    public Map upload(@RequestBody MultipartFile pic){
         // 获取文件的名字
         String oldName = pic.getOriginalFilename();
        //获得文件扩展名,并用UUID生成不重复的新文件名
        String newName=UUID.randomUUID()+oldName.substring(oldName.lastIndexOf("."));
        //上传保存服务器的真是路径
        String realpath = "E:\\lee\\new";
        
        String filename = pic.getOriginalFilename();  
        InputStream is = null;  
        OutputStream os = null;  
        String uuid = UUID.randomUUID().toString();  
        // 获得文件的后缀名  
        String endname = filename.substring(filename.lastIndexOf("."),  
                filename.length());  
         // 通过spring 自带工具包完成复制
        try {  
            is = pic.getInputStream();  
            os = new FileOutputStream(new File(realpath + "\\" + uuid + endname));  
            
            FileCopyUtils.copy(is, os);
        } catch (IOException e) {  
            e.printStackTrace();  
        } finally {  
            try {  
                os.flush();  
                os.close();  
                is.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
        Map result = new HashMap<>();
        result.put("message","上传成功");
        return result;
        
    }


spring mvc 实现文件上传_第1张图片

注:如果上传文件乱码,可以在配置bean里添加属性defaultEncoding" value="UTF-8"

完成



你可能感兴趣的:(spring mvc 实现文件上传)