我正在尝试使用创建Multipart文件并使用我的Java Spring MVC Web应用程序上传这些文件。我找不到任何使用Java创建多部分文件的文档,所以我尝试创建一个文件然后将其转换为多部分文件,然后上传它。我使用以下代码:
int randomCode = randomCodeGenerator() ;
File file1 = new File("E:\\myAccount\\voice"+randomCode+".xml");
FileWriter writer = new FileWriter(file1);
writer.write(response);
writer.close();
然后我尝试将其转换为多部分文件,如下所示:
DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, file1.getName(), (int) file1.length() , file1.getParentFile());
fileItem.getOutputStream();
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
byte[] `filedata` = multipartFile.getBytes();
现在我总是将filedata
设为0,这意味着multipart文件为空。但是我已经把它写入文件,然后再将其转换为multipart。
我不确定我在这里缺少什么。此外,我不确定这种方法是否可以在我的服务器上运行,因为我正在尝试在我的磁盘上创建一个文件,这对我来说很有用。有没有办法创建一个多部分文件或将文件转换为Multipart文件而不会丢失数据。
答案 0 :(得分:1)
如果您这样上传,则文件将从本地读取,并且在您签入或从服务器运行时不会读取。
使用通用的Multipart或标准的Multipart解析器可以解决您的问题。
请参考以下代码。
JSP
method =“ POST” enctype =“ multipart / form-data”>
控制器:
Multipart upload;
byte[] bytes = file.getBytes();
Path path=file.get(fileinputstream (upload));
Bean:
private Multipart upload;
Getter and setter method;
注册Bean
@Bean public MultipartResolver multipartResolver() {
return new StandardServletMultipartResolver();
}