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

来自字节数组的FormHttpMessageConverter文件名

晋承运
2023-03-14
MultiValueMap<String, Object> requestParameters = new LinkedMultiValueMap<String, Object>();

byte[] image=getImage();

// ... adding parameters in requestParameters       
// TODO filename
requestParameters .add("file", image);
FormHttpMessageConverter multipartFormConverter = new FormHttpMessageConverter();
        multipartFormTemplate = new RestTemplate();
        multipartFormTemplate.setMessageConverters(Collections.<HttpMessageConverter<?>> singletonList(multipartFormConverter));

        ResponseEntity<String> uploadAnswer=multipartFormTemplate.postForEntity(freePlanResponse.getUrl(), requestParameters, String.class);

问题是-我找不到,如何更改文件名。结果总是默认的文件名(${filename})。它使用的是:亚马逊S3。下面是帖子示例>>

共有1个答案

慕烨烁
2023-03-14

我找到了解决办法:

继承FormHttpMessageConverter并重写getFileName方法:

public class FormHttpMessageConverterImageName extends FormHttpMessageConverter {

    private String filename;

    public void setFilename(String filename){
        this.filename=filename;
    }

    @Override
    protected String getFilename(Object part) {
        return filename;
    }
}

但也许还有更好的解决方案。

 类似资料:
  • 我必须使用一个现有的方法,如其中有一个。 我的问题是,我正在检索一个字节[],我想用这个方法保存它。我怎样才能有一个仅用于保存的“本地”文件? 对不起,如果我的问题是愚蠢的,我不知道很多关于文件在Java。

  • 问题内容: 所以-我有一个需要a 作为输入的第三方库。我有一个。 我不想将字节写入磁盘..我想将其保留在内存中。我如何从提供的内容创建一个想法(无需写入磁盘)? 问题答案: 抱歉,不可能。除非您具有RAM磁盘,否则File本质上是磁盘上的实体-但这不是您可以用Java创建的东西。 这正是API不应该基于File对象(或过载以接受InputStream)的原因。

  • 我正在尝试将我的odt文件放到一个字节数组中,以便将其上传到我的服务器。我想我在这里找到了如何做的方法:我如何从一个ODT文件生成字节数组java。 但这似乎行不通。 所以也许您可以告诉我如何将文件放置:)

  • 问题内容: 我有一个名为lSession的javax.mail.Session和一个MimeMessage lMessage: 我得到了包含文件表示形式的字节数组列表: 我尝试将这些文件附加到邮件中,但无法修复…。 请,如果有人知道谁用字节数组附加文件? 问题答案: 试试这个代码:

  • 我已经将一个图像文件读入了ByteArray中,但是我如何将它写回。我的意思是将ByteArray保存到文件系统中的图像文件中。首选PNG格式。 我从PNG文件到ByteArray的代码:

  • 我正在创建一个游戏,我正在做一个字符选择屏幕,其中有一个JTextField用于输入用户名,屏幕上还有一个JButton“创建字符”,当按下时会解析JTextField,如果有任何问题(名称中的空格,以空格开头等),它会将一些文本放在JTextField旁边的JLabel中。 我将JButton连接到actionPerformed方法,该方法调用解析数据的函数。我的问题是,每次我按下按钮,一个新标