1. 功能介绍

    存储上传附件,替代Blob方式存储附件,文件都存储在服务器的磁盘上,通过文件表来关联文件路径,而业务表中只会存储文件的ID,简化表设计的同时更能提供更好的通用性,主要实现上传文件,下载文件。

  2. 参数说明

    参数名 参数类型 是否必须 默认值 描述
    value java.lang.String   上传文件的路径名
    className java.lang.String     引用的样式
    uploadPath java.lang.String     指定上传路径,需要自定义文件存放位置时使用,
    但指定的路径会在upload/attach目录下,同时需要自己新建目录,如myupload
    record boolean   true 若用于上传附件并保存记录时,需要为true,若只是用文件组件做读取文件操作时,设置false,
    并通过pd.getInputStreams("name")获取文件流内容,因为ajax不能读取文件操作,
    故设置该参数为false将配合Ajax实现读取文件并局部刷新界面
    reserved boolean   false 保留文件,即点删除动作时,并不删除实际的文件及对应的表关系
    fileTotal int   默认没有限制 上传文件总数
    readOnly boolean     如果是true,则为只读,不能修改,如果是false,则可以修改
    disabled boolean     如果是true,则不能修改,不能修改,如果是false,则可以修改
    fieldName java.lang.String     自定义控件名,若设置了该参数,jwcid=name@..的名称不生效,适合在foreach自定义名称或重名组件使用
    skin java.lang.String     风格定义,默认通过统一配置风格
    extension boolean   false 是否添加件的扩展名
  3. 注意事项

    1. 请检查是否建了TD_M_FILE,SEQ_FILE_ID是否存在
    2. 请检查是否在domain下建立了upload/attach,upload/temp目录
    3. ajax方式不能通过流方式获取文件内容,必须通过该组件获取上传的文件ID,然后通过方法获取对应的文件
    4. 如果要通过AJAX读取文件内容并局部刷新界面,这样需要加上record="false"参数来实现:
      1. HTML写法:
        <span
        	jwcid="FILE_FIELD1@wade:UploadField" 
        	value="ognl:info.SCHE_CONTENT1"
        	className="一行数据"
        	record="false"
        	fileTotal="1"
        />
        

        说明:record="false"表示不记录表,filtTotal="1"表示限制只上传一条,这样方便程序写法
      2. Java代码写法:
        IDataset dataset = ExcelParser.importExcel(pd, "demo/DemoList.xml", streams[0]);
        
  4. 代码片段

    1. HTML写法

      <span 
      	jwcid="SCHE_ATTACH@wade:UploadField" 
      	value="ognl:info.SCHE_ATTACH"
      	className="e_input"
      	readOnly="false"
      	disabled="false"
      />
      
  5. 效果演示

    说明:图中的上传,点击后,弹出文件选择,并选择你要上传的文件:

    返回后,如下图: