问题标签 [multipartfile]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
44 浏览

javascript - 转换内容到 Base64 并发送到期望 MultiPartFile 的 Spring 方法

由于服务器问题,我需要在将文件上传到服务器之前将其内容转换为 Base64。

我已经使用 reader.readAsDataURL 管理了 JS 方面的内容,以将内容放入本地 JS 变量中的 Base64 中。然后我尝试创建一个新的 FormData 并在那里设置 base64 变量 - 它替换了名称,但随后它也替换了类型 - 它不再是二进制数据,而只是二进制数据 - 所以当我将它发送到服务器时 - 我m 得到 Spring 错误 typeMismatch.org.springframework.web.multipart.MultipartFile

基本上 - 任何想法如何将文件内容转换为 Base64(完成)但使用 Spring MultiPartFile 发送到现有的 JAVA 方法?

即无需我重写并在FormData 中添加额外的字段以获取文件名和大小等(我在服务器端使用MultipartFile 得到的东西)。JS:(删除错误处理)

服务器端的Java:

上传文件是:

公共类 UploadDocument 实现 Serializable {

如果我只是提交表单,所有的 JAVA 东西都可以正常工作。但是在 JS 中以 Base64 格式读取文件内容,然后作为字段发送不会被转换为 MultiPartFile。更改为 byte[] 并自己为文件元数据添加新字段?还是我缺少一些技巧。

谢谢各位。

0 投票
1 回答
217 浏览

api - Flutter:通过API函数上传图像错误

我正在尝试通过我的应用程序的 API 上传图像和一些数据,我的控制台没有错误,我不知道我的功能有什么问题。这是我使用的代码:

所以任何人都可以帮我解决我的问题,拜托!

0 投票
0 回答
47 浏览

java - 传输和保存 MultipartFile 实例

我有以下方法,其简单目的是将给定MultipartFile实例的内容存储在指定目录下:

对于它可能的价值,该MultipartFile实例将包含一个图像文件,我在我正在构建的 REST API 上收到该文件。

我已经检查了一些 SO 帖子,例如thisthis但这个问题并没有完全触及:我正在有效地寻找创建一个全新的图像文件并将其存储在磁盘上的指定位置:方法write()of OutputStream,因为它需要byte[]int参数,似乎不适合我的用例。有任何想法吗?

0 投票
1 回答
52 浏览

java - 如何使用 json requestbody 将请求发送到后端 spring rest 控制器并将请求参数作为多部分图像文件

我正在编写一个后端 api,它使用带有多部分图像文件的 json 请求。我无法找到这样做的方法。任何人,面对并找到了解决与我类似的问题的方法......???

0 投票
1 回答
865 浏览

java - 使用 Spring 使用 multipartfile 测试 POST 请求

我有一个控制器发送发布请求,该请求运行良好并与客户端正确通信。但是,我无法在 JUnit 中对其进行测试。控制器接收一个 multipartfile 以及 2 个布尔参数(这是必需的),并且只接受“application/xls”作为内容类型。为了进行测试,我正在模拟 multipartfile 和参数。但是,当我这样做时,我收到以下错误:(handler.RestExceptionHandler: Exception caught. Wrong file type;\n Import .xls or .xlsx file来自我的异常处理程序)。

这是我的测试:

为了避免这个问题,我尝试将布尔值作为新的 multipart/form-data 传递,如下所示:

但是,我收到以下错误Failed to convert value of type 'org.springframework.mock.web.MockMultipartFile' to required type 'boolean';

再一次,请求有效,我也可以在Postman上完成,这是 curl 请求:

0 投票
1 回答
183 浏览

spring - 如何在 Spring Boot 中使用 MultipartFile 加载本地文件

如何在 Spring Boot 中使用仅接受 MultipartFile 的 API?必须从本地服务器传递一个文件(从某个特定路径)

现在我必须调用这个客户端方法,并且必须从特定位置传递一个本地文件,比如(/Users/pradeepkumar/Desktop/File_Download/file1.jpg)

如何获取本地文件的 MultipartFile 对象?

0 投票
0 回答
105 浏览

java - 从 MultipartFile 创建 apache poi 工作簿时,Spring Boot Controller 功能未终止或返回

所以我试图向我的后端发送一个文件和一个对象。然后我使用 Multipartfile 创建一个 Apache Poi 工作簿。使用 apache 的迭代器,我遍历文件,提取并保存我需要的内容。效果很好(它甚至将新数据保存在数据库中),但是到达 Return 语句时的函数没有返回

它似乎没有终止,因为它没有返回 StatusCode 或对象(尝试了不同的选项,见下文)。我的其他 controlerfunctions 做得很好,所以我确保我的代码正在到达 return 语句。我从代码中取出行,直到问题不再发生。创建工作簿时似乎会发生这种情况。我尝试关闭工作簿。我什至尝试手动关闭 Inputstream,但错误仍然存​​在。我尝试更改返回值(返回 Responseentity、返回 DTO、具有 void 函数并设置 @HTTPResponseStatus),但这并没有改变行为。当我拿出工作簿时,所有三种方法都奏效了。我尝试了不同版本的 apache poi(5.0.0、4.0.0、3.15)。但仍然没有返回值。

这是我的控制器:

这些是我的 Maven 依赖项:

有谁知道如何解决这个问题和/或为什么会出现这个问题?

0 投票
1 回答
116 浏览

spring-boot - 使用 FeignClient 为 MultipartFile 接收器 API 上传 MultiValueMap 时出现问题

我在将 MultipartFile 从一项服务发送到另一项服务时遇到问题。

我想调用的 API 是,

当我像下面这样调用这个 API 时,这里会创建空文件,

FeignClient

我正在使用这个 FeignClient,如下所示,

观察:我的观察是,当我通过这种方法将文件保存在磁盘上时,所有数据都会正确显示。但是在接收端保存了空文件。

另一个观察结果是,接收端的字节数组大小比发送端小。检查下图, https://i.stack.imgur.com/JjxEZ.png

另一项观察是文本文件已正确上传。

0 投票
1 回答
1451 浏览

spring-boot - Spring Boot 通过 WebClient 将文件从一个 api 传递/上传到另一个

我有两个 Spring Boot API,我首先将多部分文件从邮递员发送到一个 Spring Boot 应用程序,然后从那里发送到第二个 Spring Boot 应用程序,就像这样

邮递员(文件)-> API 1 -> API2

当文件从邮递员上传到 API1 时,一切顺利,但是当我将这个多部分文件从 API1 发送到 API2 时,事情就崩溃了。我正在使用 WebClient 将文件从 API1 发送到 API2。以下是我在这两个 API 的控制台中看到的相关代码和错误。

API1 中的代码,我使用 WebClient 使用预期文件调用 API2

API2 中用于获取文件的控制器代码

API1 控制台中的错误(文件正在发送到 API2)如下

正在接收文件的 API2 控制台中的错误

需要注意的一点是,当仅测试 API2 并使用邮递员发送文件时,它可以正常工作而不会出现任何错误。这让我相信这些 API 发送或接收文件的代码中存在一些问题

0 投票
0 回答
126 浏览

ruby - Ruby POST multipart/form-data 导致 302 Found

我正在尝试将 csv 文件上传到我的端点。我尝试这样做并导致 302 Found。尝试了此处提到的其他解决方案:Multipart POST Ruby HTTPS,但结果相同。

使用 net/http 的第一个选项

第二个选项使用“rest-client”和https://github.com/rest-client/rest-client中提到的步骤

谁能帮我理解我做错了什么?