def f = request.getFile(OMNIMED.DATAITEM_UNIQUE_IDENTIFIER+dataItem.id)
def fileName = (f==null)?"":f.originalFilename
//判断是否有文件
if(fileName.lastIndexOf('.')>=0){
def savedFileName = new Random().nextInt(1000000) +
new SimpleDateFormat( "_yyyyMMddhhmmss" ).format(new Date()) +
"${ fileName[ fileName.lastIndexOf('.') .. -1 ] }"
if(!f.empty){
//上传到服务器端
f.transferTo( new File(servletContext.getRealPath("/files/")+"/picture/"+savedFileName) )
return "../files/picture/"明升+savedFileName
}
}
图片直接存到岁氏mongodb中倒没试过
Grails 3的 官方配置文档 对grails3加载配置的策略,以及覆盖策略提扮枝之甚少,有价值的参考信息太少。由于Grails3基于Spring-boot项目,因此通过更底层的 Spring-boot的配置说明 ,可以得到很多有价值的信息。
详细的Spring-boot配置参考 官方文档 ,这里仅罗列出几个重要的
无论程序运行于哪种 environment 配置下,Spring Boot总会按照上面描述的规则加载 application.properties 。如果有 .yml 后缀的yaml配置文件,也会一并加载进来。
Spring Boot的配置文件的log在 DEBUG 级别下会打厅信印,在 TRACE 以上级别关闭打印。
如果想使用 --port=9000 代替 --server.port=9000 覆盖默认的property属性,在 application.properties 文件使用占位符即可:
这样也可以通过大写的环境变量 PORT 覆盖配置。
依赖环境的配置文件可以起厅伏敏名 application-${profile}.properties ,这样spring boot通过 -Dspring.profiles.active 或 SPRING_PROFILES_ACTIVE 环境变量指定运行环境时就会加载对应的 ${profile} 的配置文件。
准确来说,Grails官方文档使用的方案是上述 使用短命令行参数覆盖 使用的方案(当然其他方案同样适用于Grails3,只不过官方文档没提)。
官方文档的范例如下:
这里就代表这个 dataSource.url 的值希望通过system property( -DJDBC_CONNECTION_STRING 命令行参数)或环境变量( JDBC_CONNECTION_STRING ,环境变量可以覆盖默认properties官方文档没提)提供。并未提及实际还可以用 '${JDBC_CONNECTION_STRING:DEFAULT_JDBC_STRING}' 这种方式给定默认值。
对于gradle工程,官方提供的参考 build.gradle 配置文件:
表示 bootRun 这个task(对应Grails的 run-app )和 test 这个task(对应Grails的 test-app )在运行的时候,将system properties传递给grails项目。
在gradle指定system properties的方法有两种:
Grails3配置文档: http://docs.grails.org/latest/guide/conf.html
Spring Boot配置文档: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)