gpt4 book ai didi

java - 将文件存储在 ReSTLet put 方法中

转载 作者:行者123 更新时间:2023-12-01 11:39:40 24 4
gpt4 key购买 nike

我正在尝试存储通过 PUT 发送到 ReSTLet 资源的文件。

curl 语句如下所示:

curl -X PUT "http://localhost:8080/EAIConfig/ri/media" --data-binary img019.png

这是我的资源实现:

@Override
protected Representation put(Representation entity) throws ResourceException {
try {
InputStream in = entity.getStream();
OutputStream out = new FileOutputStream("/Temp/media-file.png");
IOUtils.copy(in,out);
out.close();
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return new EmptyRepresentation();
}

运行时没有错误。但生成的 /Temp/media-file.png 确实包含发送文件的名称,而不是发送的图像数据。

知道如何获取文件内容吗?

最佳答案

我认为这不是您的 ReSTLet 代码中的问题,而是您使用curl 调用它的方式有问题。

您忘记了参数--data-binary中的“@”。你应该使用类似的东西:

curl -X PUT "http://localhost:8080/EAIConfig/ri/media" --data-binary "@img019.png"

我尝试了你的代码,它对我有用。我想您是来自 Commons IO 的 IOUtils 类。

一条小评论。您的方法 put 需要定义为 public 并使用注释 @Put 才能由 ReSTLet 直接调用;-)

希望对你有帮助蒂埃里

关于java - 将文件存储在 ReSTLet put 方法中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29643047/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com