Appearance
informat.storage 文件存储操作
概述
使用informat.storage
对象进行文件存储操作,文件存储使用S3协议存储在文件服务器中。下方所有的文件都会存储在共享存储中。
术语说明
- 共享存储:请查阅共享存储相关文档
exists
判断文件是否存在
javascript
informat.storage.exists(path)
参数 | 类型 | 描述 |
---|---|---|
path | String | 文件路径 |
返回值 Boolean
返回文件是否存在
示例
javascript
// 判断当前应用指定模块附件字段的文件是否存在
const path = 'moduleId/fieldId/fileId';
var result = informat.storage.exists(path);
if (result) {
console.log('文件存在');
} else {
console.log('文件不存在');
}
listFile
返回文件夹下的文件列表
javascript
informat.storage.listFile(path)
参数 | 类型 | 描述 |
---|---|---|
path | String | 文件路径 |
返回值 Array<String>
返回文件夹下的文件列表
示例
javascript
//获取当前应用的所有文件
const fileList = informat.storage.listFile('/');
console.log('fileList',fileList);
返回数据如下:
javascript
[
'fileId',
'moduleId/fieldId/fileId',
'moduleId/fieldId/fileId2',
...
]
move
将指定路径下的文件移动到目标路径下。注意:如果目标路径存在同名文件,将覆盖同名文件
javascript
informat.storage.move(source,target)
参数 | 类型 | 描述 |
---|---|---|
source | String | 源文件路径 |
target | String | 目标路径 |
返回值
无
示例
javascript
// 将指定文件移动到应用根目录
const source = 'moduleId/fieldId/fileId';
const target = 'fileId';
informat.storage.move(source, target);
copy
将指定路径下的文件拷贝到目标路径下。注意:如果目标路径存在同名文件,将覆盖同名文件
javascript
informat.storage.copy(source,target)
参数 | 类型 | 描述 |
---|---|---|
source | String | 源文件路径 |
target | String | 目标路径 |
返回值
无
示例
javascript
// 将指定文件拷贝一个副本文件
const source = 'moduleId/fieldId/fileId';
const target = 'moduleId/fieldId/fileIdCopy';
informat.storage.copy(source, target);
delete
删除文件
如果path对应的文件不存在,系统会报文件不存在
错误; 如果path对应的是一个文件夹,不是文件,系统会报文件不存在
错误;
javascript
informat.storage.delete(path)
参数 | 类型 | 描述 |
---|---|---|
path | String | 文件路径 |
返回值
无
示例
javascript
// 删除当前应用指定模块附件字段的文件
const path = 'moduleId/fieldId/fileId';
informat.storage.delete(path);
deleteDirectory
删除文件夹
如果path对应的文件夹不存在,系统会报文件不存在
错误; 如果path对应的是一个文件,不是文件夹,系统会报文件不存在
错误;
javascript
informat.storage.deleteDirectory(path)
参数 | 类型 | 描述 |
---|---|---|
path | String | 文件夹路径 |
返回值
无
示例
javascript
// 删除当前应用指定模块附件字段的所有文件
const path = 'moduleId/fieldId';
informat.storage.deleteDirectory(path);
download
将共享存储中的文件,下载到本地沙盒环境。注意:如果本地存在同名文件,将覆盖同名文件
javascript
informat.storage.download(path,localPath)
参数 | 类型 | 描述 |
---|---|---|
path | String | 文件路径 |
localPath | String | 本地沙盒环境文件路径 |
返回值
无
示例
javascript
// 下载当前应用,指定共享存储文件到本地根目录
const path = 'moduleId/fieldId/fileId';
const localPath = 'local.png';
informat.storage.download(path, localPath);
upload
将本地文件上传到共享存储中。注意:如果本地存在同名文件,将覆盖同名文件
javascript
informat.storage.upload(localPath,remotePath)
参数 | 类型 | 描述 |
---|---|---|
localPath | String | 本地文件路径 |
remotePath | String | 共享存储路径 |
返回值
无
示例
javascript
// 上传当前应用,指定本地文件到共享存储根目录
const localPath = 'local.png';
const remotePath = 'remote.png';
informat.storage.upload(localPath, remotePath);
uploadFromURL
将远程地址指定的文件上传到共享存储中
javascript
informat.storage.uploadFromURL(url,remotePath)
参数 | 类型 | 描述 |
---|---|---|
url | String | 远程地址 |
remotePath | String | 共享存储的路径 |
返回值
无
示例
javascript
// 上传远程文件到当前应用共享存储根目录
const url = 'https:/example.com/file.jpg';
const remotePath = 'file.jpg';
informat.storage.uploadFromURL(url, remotePath);
getFilePath
获取文件路径
javascript
informat.storage.getFilePath(tableKey,fieldKey,fileId)
参数 | 类型 | 描述 |
---|---|---|
tableKey | String | 数据表标识符 |
fieldKey | String | 字段标识符 |
fileId | String | 文件ID |
返回值 String
共享存储文件路径
示例
javascript
// 获取数据表标识符为goods,字段标识符为pic,文件ID为fileId的文件路径
const filePath = informat.storage.getFilePath('goods', 'pic', 'fileId');
console.log('文件路径---->', filePath); // 文件路径---->goodsmoduleId/picFieldId/fileId
convertFormat
文档格式转换
javascript
informat.storage.convertFormat(sourcePath,targetPath,setting)
参数 | 类型 | 描述 |
---|---|---|
sourcePath | String | 要转换的文档路径 |
targetPath | String | 转换成功后目标文档路径 |
setting | ConvertSetting | 转换设置 |
ConvertSetting
结构如下
js
{
async:Boolean,//定义转换请求类型:异步与否
fileType:String,//定义要转换的文档文件的类型。
outputtype:String,//定义生成的转换文档类型。
password:String,//如果文档文件受密码保护,则定义该文件的密码
region:String,//定义从电子表格格式转换为pdf时货币和日期和时间的默认显示格式。使用四个字母(en-US、fr-FR等)语言代码进行设置。默认值为en-US。
title:String,//定义转换后的文件名
spreadsheetLayout:{
fitToHeight:Integer,//设置转换区域的高度,以页数为单位。默认值为0。
fitToWidth:Integer,//设置转换区域的宽度,以页数为单位。默认值为0。
gridLines:Boolean,//允许在输出 PDF 文件中包含或不包含网格线。默认值为false。
headings:Boolean,//允许在输出 PDF 文件中包含或不包含标题。默认值为false。
ignorePrintArea:Boolean,//确定是否忽略为电子表格文件选择的打印区域。默认值为true
margins:{
bottom:String,//设置输出 PDF 文件的下边距。默认值为19.1 毫米。
right:String,//设置输出 PDF 文件的右边距。默认值为19.1 毫米。
left:String,//设置输出 PDF 文件的左边距。默认值为19.1 毫米。
top:String,//设置输出 PDF 文件的上边距。默认值为19.1 毫米
},
orientation:String,//设置输出 PDF 文件的方向。可能是landscape,portrait。默认值为portrait。
pageSize:{
height:String,//设置输出 PDF 文件的页面高度。默认值为297 毫米。
width:String//设置输出 PDF 文件的页面宽度。默认值为210 毫米。
},
scale:Integer,//允许设置输出 PDF 文件的比例。默认值为100。
},
thumbnail:{
/*
定义使图像适合指定的高度和宽度的模式。支持的值:0 - 拉伸文件以适应高度和宽度1 - 保持图像的方面2 - 在这种情况下,不使用宽度和高度设置。取而代之的是,页面的公制尺寸转换为 96dpi 的像素。例如,A4 (210x297mm) 页面将变成尺寸为 794x1123pix 的图片。默认值为:2。
*/
aspect:Integer,
/*
定义是仅为第一页还是为所有文档页面生成缩略图。
如果为 false,则将创建包含所有页面缩略图的 zip 存档。
默认值为true,
*/
first:Boolean,
height:Integer,//以像素为单位定义缩略图高度。默认值为100
width:Integer,//以像素为单位定义缩略图宽度。默认值为100
}
}
下面是一个将docx格式文档转换为pdf格式的例子
js
informat.storage.convertFormat('table/field/fileId','table/field/fileId_converted',{
"filetype": "docx",
"outputtype": "pdf",
"title": "test.pdf",
})
convertFormatFromURL
从远程地址中进行文档格式转换
javascript
informat.storage.convertFormatFromURL(sourceURL,targetPath,setting)
参数 | 类型 | 描述 |
---|---|---|
sourceURL | String | 要转换的文档远程地址 |
targetPath | String | 转换成功后目标文档路径 |
setting | ConvertSetting | 转换设置 |
下面是一个通过文档远程地址将docx格式文档转换为pdf格式的例子
js
informat.storage.convertFormatFromURL('https://xxx.xxx.xx/file/example.docx','table/field/example.pdf',{
"filetype": "docx",
"outputtype": "pdf",
"title": "test.pdf",
})