SpringMvc 의 Commons Multipart Resolver 를 사용 하여 파일 을 업로드 합 니 다(효율 적 입 니 다)

1.springmvc.xml 에서 설정 업로드:
    
    <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="104857600" />
        <property name="defaultEncoding" value="UTF-8">property>
    bean>

2.컨트롤 러(Controller)에서 요청 을 받 은 코드
    /**
     * @Description     
     * @Author    
     * @Date 2017/6/12
     */
    @IgnoreAuth
    @PostMapping("uploadImage")
    @ResponseBody
    public Out uploadImage( HttpServletRequest request) throws IOException{
        //            CommonsMutipartResolver (      )
        CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
        multipartResolver.setDefaultEncoding("utf-8");  //    
        String res = null;
        //   form    enctype="multipart/form-data"
        if(multipartResolver.isMultipart(request)) {
            //  request     request
            MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
            //   multiRequest       
            Iterator iter = multiRequest.getFileNames();
            while(iter.hasNext()) {
    //          
                MultipartFile file = multiRequest.getFile(iter.next());
                if(file != null) {
                    String name = FileUtil.getOSSFile(file);
                    InputStream input = file.getInputStream();
                    OSSClient client = ossFactory.getClient();
                    OSSUtil.putObject(input,file.getSize(), client, SystemVar.OSS_BUCKET, name);
                    res =  SystemVar.OSS_URL+name;
                }
            }
        }
        return Out.ok().put("path",res);
    }

여기에 업로드 할 때 사용 하 는 것 은 아 리 OSS 입 니 다.업로드 과정 은 더 이상 쓰 지 않 습 니 다.업로드 에 성공 한 후에 uri 로 돌아 가 도 메 인 이름 생 성 url 을 전단 으로 되 돌려 주면 됩 니 다.물론 주의해 야 할 것 은 전단 의 요청"Content-Type":"multipart/form-data"입 니 다.

좋은 웹페이지 즐겨찾기