如何使用java创建Multipart文件

时间:2018-06-19 11:04:57

标签: java file multipart

我正在尝试使用创建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文件而不会丢失数据。

1 个答案:

答案 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(); 
}