苍穹4.0更新之后,文件服务、图片列表和附件的上传路径原创
金蝶云社区-吴锐雄
吴锐雄
4人赞赏了该文章 1159次浏览 未经作者许可,禁止转载编辑于2022年02月11日 10:47:40



图片或者附件的上传路径,本来是一个相对路径。

在苍穹4.0版本更新到高版本,或者使用苍穹的公有云,图片和附件的上传路径会经过编码。


会返回这样的字符串:

image.png

这个字符串是把相对路径进行一个编码之后的字符串。


要获取真正的相对路径,可以使用FilePathService、ImageFilePathService

(1)拿图片列表的上传监听为例,使用ImageFilePathService的getRealPath方法做一个对字符串的解码,获取到真实的相对路径。

代码如下:

@Override
public void upload(UploadEvent evt) {
    evt.getUrls();
    System.out.println();
    String flie=this.parseFileUrls(evt);
    String reurl=(String) this.getModel().getValue("kdec_largetextfield");//大文本控件
    if(!flie.equals(" ")) {
        reurl=reurl+flie;
    }else {
        reurl=reurl.toString();
    }
    this.getModel().setValue("kdec_largetextfield", reurl);
}

private String parseFileUrls(UploadEvent evt) {
    Object[] urls = evt.getUrls();
    if (urls.equals(null)) {
        return null;
    }
    StringBuffer urlsbuf = new StringBuffer();
    ImageFilePathService ifs = new ImageFilePathService();
    for (Object url : urls) {
        urlsbuf.append(ifs.getRealPath(url.toString()));
        urlsbuf.append(" ");
    }
    return urlsbuf.toString();
}


(2)使用FilePathService获取附件的相对路径:

image.png


(3)我们拿到了这个相对路径之后,可以在前面加上fileserver的访问路径,就可以查看这个图片了。

image.png


fileserver的地址可以在mc里面查看

image.png


(4)图片的上传路径

图片列表控件,默认是不保存图片路径的,但是上传时,会把图片通过文件服务上传到服务器上。

以轻量级苍穹环境为例,可以在fileserver的conf目录下,找到配置上传的目标磁盘。

image.png

苍穹的图片列表在上传图片之后,就是保存到这个路径下面的,

直接在右上角的文件搜索里面搜索图片名,就可以找到这个图片。

image.png




赞 4