文件上传(任何模板)

来源:互联网 发布:百科优化 编辑:程序博客网 时间:2024/06/06 02:08
@ResponseBody
    @RequestMapping(value = "uploadContractSigne")
    public String  upLoadContractSigne(HttpServletRequest request, HttpServletResponse response, HttpSession session
            ) throws IOException {
        //转型为MultipartHttpRequest
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        //得到文件
        MultipartFile file = multipartRequest.getFile("nameAppendix");

             // 构建文件保存的目录  //文件路径(positAppendix)

            String attachBaseDir = CommonConstants.ATTACH_BASE_DIR;
            String fileurl="";
            fileurl=attachBaseDir;
            Date date1 = new Date();
            DateFormat df = new SimpleDateFormat("yyyyMMdd");
            String dateDir = df.format(date1);
            //文件上传的绝对路径
            String logoRealPath = fileurl + File.separator+dateDir;
             //获得文件名(nameAppendix)
             String fileName = file.getOriginalFilename();
             String name = fileName.substring(0,fileName.lastIndexOf("."));
             System.out.println("^^^^^^^^^"+name);
             //获得文件类型
             String fileType = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length());
             System.out.println("。。。。。。"+fileType);
             File savePath = new File(logoRealPath);
             if(!savePath.exists()){
                 //如果文件夹不存在  就创建
                 savePath.mkdirs();
             }
        
        //获得上传文件的输入流
        InputStream in = file.getInputStream();
        //创建一个文件输出流
        FileOutputStream out = new FileOutputStream(savePath.toString()+"/"+name);
        //创建一个缓冲区
        byte buffer[] = new byte[1024*1024*10];
        //判断输入流中的数据是否已经读完的标识
        int len = 0;
         //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
        if((len=in.read(buffer))>0){
             out.write(buffer, 0, len);
        }
        //关闭输入流
        in.close();
        //关闭输出流
         out.close();

        
        return "SUCCESS";
    }
原创粉丝点击