【问题标题】:How to create a Multipart file using java如何使用 java 创建 Multipart 文件
【发布时间】:2018-06-19 11:04:57
【问题描述】:

我正在尝试使用我的 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,这意味着多部分文件为空。但在将其转换为多部分之前,我已经写入了文件。

我不确定我在这里缺少什么。另外,我不确定这种方法是否适用于我的服务器,因为我正在尝试在我的磁盘上创建一个文件,该文件在本地为我工作。有什么方法可以创建多部分文件或将文件转换为多部分文件而不会丢失数据。

【问题讨论】:

    标签: java file multipart


    【解决方案1】:

    如果您这样上传,则文件将从本地读取,当您签入或从服务器运行时不会读取。

    使用通用的 Multipart 或标准的 Multipart 解析器,可以解决您的问题。

    参考下面的代码。

    JSP
    method="POST" enctype="multipart/form-data">

    控制器:

    Multipart upload;
    byte[] bytes = file.getBytes(); 
    Path path=file.get(fileinputstream (upload));
    

    豆子:

    private Multipart upload;
    Getter and setter method;
    

    注册 Bean

    @Bean public MultipartResolver multipartResolver() { 
        return new StandardServletMultipartResolver(); 
    }
    

    【讨论】:

    • 我正在尝试在我的程序中创建文件,而不是上传它。有没有办法在java中创建或在java中将文件转换为multipart而不丢失数据
    • Multipart 是 MVC 中上传文件的一种简单方式。如果它没有上传,你可以发布堆栈跟踪。确保表单是通过 post 提交的,并且控制器方法也是 post。
    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-13
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多