Spring Boot multipartfile是否不可修改?

时间:2019-07-06 02:16:54

标签: java spring request

我有一个问题,我想更改一个请求的MultipartFile,因为在将服务用作普通的excel文件或其他格式之前,我必须对上传的文件进行解密。为此,我编写了一个CustomerMultipartFile类实现MultipartFile,并将解密字节放入新类中,并将其用作MultipartFile实例。但是我发现,当我使用修改后的请求文件的字节时,bytes数组与我设置的字节完全不同。这是代码:

        registry.addInterceptor(new HandlerInterceptorAdapter() {
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
                throws Exception {

            boolean isMultipart = multipartResolver.isMultipart(request);

            if(isMultipart && encrypt.isEncrypt()){
                Map<String, MultipartFile> map =  multipartResolver.resolveMultipart(request).getFileMap();

                Set<String> keys = map.keySet();

                for(String key : keys){
                    MultipartFile file = map.get(key);

                    byte[] content = FileUtils.decrypt(file.getBytes());

                    CustomerMultipartFile cf = new CustomerMultipartFile();
                    cf.setContentType(file.getContentType());
                    cf.setName(file.getName());
                    cf.setOriginalFilename(file.getOriginalFilename());

                    cf.setBytes(content);
                    cf.setSize(content.length);


                    map.put(key, cf);
                }
            }

            return true;
        }
    });

任何尝试都是值得的。

0 个答案:

没有答案