当前位置: 首页 > 知识库问答 >
问题:

使用Spring RestTemplate在multipart中发布字节数

党佐
2023-03-14

我试图使用Spring RestTemplate发布一个多部分/表单数据,并将字节数组作为上传文件,但它总是失败(服务器拒绝了不同类型的错误)。

我正在使用带有ByteArrayResource的MultiValueMap。是不是我漏了什么?

共有1个答案

薛彭薄
2023-03-14

是的。少了点什么。

我找到了这篇文章:

https://medium.com/@voziv/posting-a-byte-array-instead-of-a-file-using-spring-s-resttemplate-56268B45140B

private static void uploadWordDocument(byte[] fileContents, final String filename) {
    RestTemplate restTemplate = new RestTemplate();
    String fooResourceUrl = "http://localhost:8080/spring-rest/foos"; // Dummy URL.
    MultiValueMap<String, Object> map = new LinkedMultiValueMap<String, Object>();

    map.add("name", filename);
    map.add("filename", filename);

    // Here we 
    ByteArrayResource contentsAsResource = new ByteArrayResource(fileContents) {
        @Override
        public String getFilename() {
            return filename; // Filename has to be returned in order to be able to post.
        }
    };

    map.add("file", contentsAsResource);

    // Now you can send your file along.
    String result = restTemplate.postForObject(fooResourceUrl, map, String.class);

    // Proceed as normal with your results.
}
 类似资料:
  • 我开发了一个应用程序。在我的应用程序中,我从相机或画廊拍摄一张图像。我想使用多部分发布图像到服务器,但图像不发布它。我的帖子数据如下

  • 我正在尝试从我的电脑上传图像到一个使用Go的网站。通常,我使用一个bash脚本,向服务器发送一个文件和一个密钥:

  • 我正在尝试使用curl向REST服务发布一个xml文件(utf-16编码)。REST服务需要“multipart/form-data”内容类型。 Curl脚本:Curl-k-i-h“content-type=multipart/form-data”-f“filename=@file.xml;type=text/xml”-x POST-u: 然而,我在运行脚本时得到500个内部服务器错误。 响应:<

  • 问题内容: 我在使用jQuery的ajax函数将文件发送到服务器端PHP脚本时遇到问题。可以获取File- List,但是如何将此数据发送到服务器呢?使用文件输入时,服务器端php脚本上的结果数组()为0()。 我知道这是可能的(尽管直到现在我还没有找到任何jQuery解决方案,只有Prototye代码(http://webreflection.blogspot.com/2009/03/safar

  • 这件事完全让我发疯了。我花了几个月的时间,试图让一个简单的节点应用程序工作。我最终设法使一个应用程序在一个很好的服务器(Heroku)和MySQL中工作。问题?服务器只接受postgres。这是我的噩梦。我就是不能让它工作。搜索了几十个网页和问题,所有的错误日志都和我一样...但我不知道该怎么办。我在配置方面完全是白痴,我甚至不能开始编程我的应用程序。 错误:Object._ErrnoExcept

  • aiohttp支持功能完备的Multipart读取器和写入器。这俩都使用流式设计,以避免不必要的占用,尤其是处理的载体较大时,但这也意味着大多数I/O操作只能被执行一次。 读取Multipart响应 假设你发起了一次请求,然后想读取Multipart响应数据: async with aiohttp.request(...) as resp: pass 首先,你需要使用MultipartR