页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

以String为基础的文件存储方式,克服了第一种以LcoalFile为基础实现文件存储的诸多不足,是推荐的文件存储方法,String类型优势有:

  1. 由于通过Tomcat服务器上传下载文件,将负载从restful api分离出来,避免了上传下载大文件时的对网络的竞争,提升了DWF的并发响应能力。由于通过Tomcat服务器下载文件,将负载从restful api分离出来,避免了并发下载大文件时的对网络的竞争,提升了DWF的并发响应能力。
  2. 可以利用tomcat服务器自身的压缩功能加速传输速度,不会消耗DWF的restful api服务自身的算力。
  3. 利用String存储方式,也有利于将来在需要的时候将文件存储与主流对象存储服务合并。
  4. 解除了LocalFile只能上传1个文件的限制,通过多文件上传控件可以做到在1个属性中存储多个文件元信息。

...

上述规范中,以JSON数组为基础的规范是推荐的规范。

后端脚本的处理

对于String类型的文件存储,并没有提供专门的后端脚本函数,在后端脚本中如果希望直接操作文件,可以根据对象的属性得到文件在服务器的存储的路径,然后利用后端脚本的Graalvm引擎将Java转Javascript实现对文件的处理。

前端控件提供的函数

在前面介绍的文件基础上,还可以利用前端控件提供的一些函数和变量帮助简化脚本编写,下面简单介绍一下:

PC端表单控件

  1. 文件上传(Attachements):针对单个文件上传的控件,除了通过getValue自行判断以外,可以通过fileUrl获得完整的url:
    • fileUrl:属性,在前端脚本中,可直接通过getAddinById获得控件句柄以后,利用fileUrl属性即可获得有意义的文件url,省去了拼接url的麻烦
  2. 多文件上传(MultiFileList):只支持String类型,通过getValue可以获得以相对路径url为基础的JSON数组
    • getFileList(withUrl = false):获得具有完整url而非相对url的文件列表JSON数组:当withUrl = true的时候可以获得具有完整url而非相对url的文件列表JSON数组
  3. 图片(Images):图片可能来自于String类型属性,LocalFile类型属性,DWF全局图片库或者互联网上有意义的url对应的图片
    • ImageUrl:通过getAddinById获得控件的引用以后,直接获得有意义的文件对应完整urlimgUrl:通过getAddinById获得控件的引用以后,直接获得有意义的文件对应完整url

移动端表单控件

  1. 照相(Camera):由于可以通过拍摄多次,所以绑定String类型属性,其中有意义的属性是:
    • fileList:通过getAddinById获得控件引用之后,利用fileList可直接获取具有完整url的数组,数组中元素的内容和String类型元信息格式一致,唯一不同的地方在于url是完整的url
  2. 录音(Record):
    • fileList:通过getAddinById获得控件引用之后,利用fileList可直接获取具有完整url的数组,数组中元素的内容和String类型元信息格式一致,唯一不同的地方在于url是完整的url
  3. 图片(Images):图片可能来自于String类型属性,LocalFile类型属性,DWF全局图片库或者互联网上有意义的url对应的图片
    • ImageUrl:通过getAddinById获得控件的引用以后,直接获得有意义的文件对应完整urlimgUrl:通过getAddinById获得控件的引用以后,直接获得有意义的文件对应完整url
  4. 上传文件(Attachments):和PC端不同,移动端上传文件同时囊括了单文件和多文件上传的能力
    • fileList:通过getAddinById获得控件引用之后,利用fileList可直接获取具有完整url的数组,数组中元素的内容和String类型元信息格式一致,唯一不同的地方在于url是完整的url
  5. 签字(SignImg):
    • getValue():返回签字后上传图片对应的完整url

其他渠道上传文件的存储位置

最后,与DWF有关的资源文件上传的目录包括下面几个,当使用后端脚本在服务器端处理的时候需要了解这些文件都存储在哪里,以何种方式命名:

...