附件服务
| Modifiers | Name | Description |
|---|---|---|
static Integer |
aliasOverridingOrder |
| Type | Name and description |
|---|---|
FileHandler |
fileHandler |
OsmEmployeeService |
osmEmployeeService |
SettingService |
settingService |
| Type | Name and description |
|---|---|
Map |
assembleAttachment(Attachment att, Boolean isNew) |
Attachment |
copy(Object att, Object bean = null, Map props = null)复制一个附件对象,并返回复制后的附件对象 |
String |
createTemporaryLink(Attachment att, Date expiry)创建一个临时的下载链接 |
List<Attachment> |
delete(javax.servlet.http.HttpServletRequest request)根据请求,删除文件,并返回被删除的附件对象列表 |
void |
delete(String uuid)删除附件 |
void |
delete(List<Attachment> attachments)删除附件 |
void |
deleteBy(Object bean)删除 Domain 对象时,在 Hibernate 事件中自动删除其包含的附件 |
void |
deleteFailed(javax.servlet.http.HttpServletRequest request)删除控制器发生异常之前保存到磁盘上的文件 |
void |
detach(Attachment att, java.io.File target)将附件拆出到文件系统中 |
void |
download(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, String uuid)根据请求,下载文件 |
void |
downloadBatch(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, String uuids)根据请求,批量下载文件(压缩成zip文件) |
void |
downloadStatic(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, grails.artefact.Controller controller, String name)下载静态资源(前端没有Apache的情况下) |
void |
downloadTemplate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Map filter)根据请求,下载附件模板 |
List<Attachment> |
findAllBy(Object bean, Map criterias = [tags: null)根据 Domain Bean 获取其附件列表、并缓存到 bean 对象中 |
List<Attachment> |
findAllBy(String dataClass, Long dataId, Map criterias = [tags: null)根据Domain Bean获取其附件列表 |
List |
findAllByCriterias(Map criterias, boolean idsOnly) |
List<Attachment> |
findAllByTempId(String tempId, Map criterias = [tags: null)根据临时存放的id,获取对应的附件列表 |
List<Attachment> |
findAllByUuids(String uuids)根据 uuid 获得附件对象列表 |
List<Long> |
findAllIdsBy(String dataClass, Long dataId, Map criterias = [tags: null)根据Domain类和ID,获得附件ID列表 |
Attachment |
findByUuid(String uuid)根据 uuid 获得附件对象 |
java.io.InputStream |
getInputStream(String uuid)根据 uuid 获得附件的输入流,使用完后需close。 |
java.io.InputStream |
getInputStream(Attachment att)获得附件的输入流,使用完后需close。 |
java.io.File |
getTemplateFile(String dataClass, String dataTag, String fileName)计算模板文件对象 |
void |
joinIdentical()计算新上传的文件MD5、合并相同的文件、将文件离散化处理等 |
Attachment |
save(Object bean, String filename, String tag)从文件系统中添加附件到文档中 |
Attachment |
save(String dataClass, Long dataId, String filename, String tag, Map options = null)从文件系统中添加附件到文档中 |
Attachment |
save(Object bean, Map modelAndView, String filename, String tag)渲染 ModelAndView(gsp)后,将结果作为附件,附加到文档中 |
Attachment |
save(String dataClass, Long dataId, Map modelAndView, String filename, String tag, Map options = null)渲染 ModelAndView(gsp)后,将结果作为附件,附加到文档中 |
List<Attachment> |
save(Object bean, javax.servlet.http.HttpServletRequest request, Map options = null)根据 HTTP 请求,保存上载的文件 |
List<Attachment> |
save(String dataClass, Long dataId, javax.servlet.http.HttpServletRequest request, Map options = null) |
List<Attachment> |
update(Object bean, String tempId)保存上载的临时文件到实体 bean 中 |
List<List<Attachment>> |
update(Object bean, javax.servlet.http.HttpServletRequest request, Map options = null)根据 HTTP 请求,更新附件(含保存新附件、删除) |
bropen.toolkit.api.Response |
uploadImage(javax.servlet.http.HttpServletRequest request, java.io.File targetFile, Closure validator) |
boolean |
validateAttachment(String uuid)校验附件是否被篡改 |
Attachment |
validateTemporaryLink(String id)@see bropen.framework.core.biz.BizPermissionService#encryptReferenceBizId |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
复制一个附件对象,并返回复制后的附件对象
att - 附件对象或IDbean - 可选。复制到的属主对象props - 可选。用于给新的附件对象赋值的一些属性,如 dataTag 等创建一个临时的下载链接
expiry - 失效时间根据请求,删除文件,并返回被删除的附件对象列表
删除附件
uuid - 至少包含 saveName 和 id 的附件 uuid;如果不合法会抛出异常。删除附件
删除 Domain 对象时,在 Hibernate 事件中自动删除其包含的附件
删除控制器发生异常之前保存到磁盘上的文件
保存附件成功后,控制器中可能又抛出异常,此时数据库操作都回滚,但是文件系统上已经保存了些附件,应该把这些附件从文件系统中删除。
将附件拆出到文件系统中
att - 附件对象target - 目标文件对象根据请求,下载文件
注:不支持断点续传,以免多线程下载把服务器拖死!
根据请求,批量下载文件(压缩成zip文件)
注:不支持断点续传,以免多线程下载把服务器拖死!
下载静态资源(前端没有Apache的情况下)
name - 相对静态资源的文件夹的文件全路径,如“foo/bar.zip”根据请求,下载附件模板
filter - 定位附件模板的所需信息,包括 dataClass、fileName、dataTag(可选)根据 Domain Bean 获取其附件列表、并缓存到 bean 对象中
criterias.tags - 附件标签,列表或以逗号或分号分隔的字符串,空则表示所有criterias.type - 附件类型(Attachment.TYPE_ATTACHMENT or Attachment.TYPE_OFFICEBODY),空则表示所有根据Domain Bean获取其附件列表
criterias.tags - 附件标签,列表或以逗号或分号分隔的字符串,空则表示所有criterias.type - 附件类型(Attachment.TYPE_ATTACHMENT or Attachment.TYPE_OFFICEBODY),空则表示所有根据临时存放的id,获取对应的附件列表
criterias.tags - 附件标签,列表或以逗号或分号分隔的字符串,空则表示所有criterias.type - 附件类型(Attachment.TYPE_ATTACHMENT or Attachment.TYPE_OFFICEBODY),空则表示所有根据 uuid 获得附件对象列表
uuids - 以分号分隔的 uuid 列表根据Domain类和ID,获得附件ID列表
根据 uuid 获得附件对象
根据 uuid 获得附件的输入流,使用完后需close。
获得附件的输入流,使用完后需close。
计算模板文件对象
计算新上传的文件MD5、合并相同的文件、将文件离散化处理等
从文件系统中添加附件到文档中
bean - 文档对象filename - 文件名(含全路径)tag - 附件标签名,不能以数字开头从文件系统中添加附件到文档中
filename - 文件系统中的文件全路径options.tempId - 当临时存放时,可以设置一个随机的临时值进行暂存,页面上通常为 createIdoptions.application - 附件所属应用,默认为当前应用options.user - 文件上传人,三种组合 user、employee、uploaderId + uploaderName 任选其一options - 其他附件属性,如 type渲染 ModelAndView(gsp)后,将结果作为附件,附加到文档中
bean - 文档对象modelAndView - 包含 view、model、plugin 属性的 Map -- 同控制器中 render 的参数filename - 文件名tag - 附件标签名,不能以数字开头渲染 ModelAndView(gsp)后,将结果作为附件,附加到文档中
options.tempId - 当临时存放时,可以设置一个随机的临时值进行暂存,页面上通常为 createIdoptions.application - 附件所属应用,默认为当前应用options.user - 文件上传人,三种组合 user、employee、uploaderId + uploaderName 任选其一options - 其他附件属性,如 type根据 HTTP 请求,保存上载的文件
bean - 附件所属的实体,如果为 null 或者 id 为空,则 options.tempId 不能为空,否则直接返回空列表request - 提交的请求对象options.tag - 附件标签,默认等于附件上传时的 input 的名称删除 "__数字" 后缀后的值options.maxSize - 限制文件大小(Byte),可以为数字或者 Map(如 [abc: 4000] 表示允许 tag 为 abc 的附件最大为 4K)options.minImageSize - 限制图片的最小尺寸,可以为形如 “长x高” 的字符串或者键为附件标签名的 Mapoptions.maxImageSize - 限制图片的最大尺寸options.tempId - 当临时存放时,可以设置 bean 为 null,并设置一个随机的临时值进行暂存,页面上通常为 createIdoptions.application - 附件所属应用,默认为当前应用options.user - 文件上传人,三种组合 user、employee、uploaderId + uploaderName 任选其一options - 其他附件属性,如 type保存上载的临时文件到实体 bean 中
由控制器脚手架模板方法 updateAttachments 自动调用。
bean - 附件所属的实体tempId - 临时 id根据 HTTP 请求,更新附件(含保存新附件、删除)
bean - 附件所属的实体,如果为 null 或者 id 为空,则 options.tempId 不能为空options - 保存、校验附件的参数,见方法 #save 的注释校验附件是否被篡改