繁体   English   中英

将文件存储在Restlet放置方法中

[英]Store file in Restlet put method

我正在尝试存储通过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直接调用;-)

希望对您有帮助,蒂埃里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM