Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导多部分文件不可修改吗?_Java_Spring_Request - Fatal编程技术网

Java Spring引导多部分文件不可修改吗?

Java Spring引导多部分文件不可修改吗?,java,spring,request,Java,Spring,Request,我有一个问题,我想更改一个请求的多部分文件,因为我必须先对上传的文件进行解密,然后我的服务才能将其用作普通excel文件或其他格式。为此,我编写了一个CustomerMultipartFile类实现MultipartFile,并将解密字节放入新类中,并将其用作MultipartFile实例。但我发现,当我使用修改后的请求文件的字节时,字节数组与我在其中设置的完全不同。代码如下: registry.addInterceptor(new HandlerInterceptorAdapt

我有一个问题,我想更改一个请求的多部分文件,因为我必须先对上传的文件进行解密,然后我的服务才能将其用作普通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;
        }
    });
registry.addInterceptor(新的HandlerInterceptorAdapter(){
@凌驾
公共布尔预处理(HttpServletRequest请求、HttpServletResponse响应、对象处理程序)
抛出异常{
布尔isMultipart=multipartResolver.isMultipart(请求);
if(isMultipart&&encrypt.isEncrypt()){
Map Map=multipartResolver.resolveMultipart(请求).getFileMap();
Set keys=map.keySet();
用于(字符串键:键){
MultipartFile file=map.get(key);
byte[]content=FileUtils.decrypt(file.getBytes());
CustomerMultipartFile cf=新CustomerMultipartFile();
cf.setContentType(file.getContentType());
cf.setName(file.getName());
cf.setOriginalFilename(file.getOriginalFilename());
cf.setBytes(内容);
cf.setSize(内容、长度);
地图放置(键,cf);
}
}
返回true;
}
});
感谢您的任何尝试