Разве Spring Boot multipartfile не модифицируется? - PullRequest
1 голос
/ 06 июля 2019

У меня есть проблема, из-за которой я хочу изменить MultipartFile одного запроса, так как мне нужно расшифровать загруженный файл, прежде чем моя служба сможет использовать его как обычный файл Excel или какой-либо другой формат. Для этого я пишу класс CustomerMultipartFile, реализующий MultipartFile, и помещаю байты дешифрования в новый класс и использую его как экземпляр MultipartFile. Но я обнаружил, что когда я использую байты измененного файла запроса, массив байтов полностью отличается от того, что я в него установил. Вот код:

        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;
        }
    });

Любая попытка приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...