DzzOffice开发手册常用接口篇

文件管理IO接口概述:

  • 提供了文件管理相关操作的IO接口。
  • 包括文件的地址和内容的获取,目录创建,内容设置,下载,删除,重命名,复制及剪切等操作。

文件操作接口:

文件流地址获取:

  • 获取文件流地址:使用IO::getStream($path)方法,返回文件流地址。
/* 获取文件流地址
*@parame  $path   
文件的地址(DzzPath)*@return  
文件流地址*/
IO::getStream($path);
注意事项:
  1. 对于本地的文件会调用文件的绝对地址,防止文件被服务器解析;
  2. 返回的地址可以直接用于php的文件读取函数如fopen、file_get_contents等;
  3. 可以使用URL地址方式来调用:

如:index.php?mod=io&op=getStream&path=ODA3OXJyRkFsM3Q1ZzlGWXVRYXREWGhGOEQyOWpYcE9QK1hqL1c1WWhEOElPWVJ3ZmtrNm1EOA==

此处path的值为dzzencode($path)的值

文件URI地址获取:

  • 获取文件URI地址:使用IO::getFileUri($path)方法,返回文件地址。
/* 获取文件URI地址
*@parame  $path   文件的地址(DzzPath)
*@return  文件地址
*/
IO::getFileUri($path);
注意事项:
  1. 对于FTP文件,为了安全地址中没有包含ftp帐号和密码,只有对于匿名的ftp起作用;
  2. 返回的地址是文件的http地址(有些类型的文件可能会被解析),可以直接用于php的文件读取函数如fopen、file_get_contents等;

文件缩略图生成:

  • 获取文件缩略图:使用IO::getThumb($path, $width, $height, $original, $returnurl, $thumbtype)方法,返回缩略图或缩略图路径。
/* 获取文件缩略图
*@parame  $path      文件的地址(DzzPath)
*@parame  $width     缩略图宽度
*@parame  $height    缩略图高度
*@parame  $original  是否调用原图,调用原图时,宽度和高度参数忽略
*@parame $returnurl 是否返回图片路径
*@parame $thumbtype 生成缩略图方式,1等比例生成,2剪裁生成
*@return  缩略图
*/
IO::getThumb($path,$width,$height,$original=false,$returnurl=false,$thumbtype=1);
注意事项:
  1. 当文件的原始高度或宽度小于给定的宽度或高度时,直接调用原图;
  2. 生成的缩略图会缓存在服务器./data/attachment/imgcache/下,下次调用会直接使用,可以通过计划任务定期清理。
  3. 可以通过URL地址方式来获取缩略图:index.php?mod=io&op=thumbnail&width=256&height=256&path=MGUzNXNOeWMxT1ZZbk9KTnp1VlJKWkhqZTNWT3hESlp5a2MwUk1PMnJscEg= 其中path的值为dzzencode($path)的值;

文件信息获取:

  • 获取文件信息:使用IO::getMeta($path)方法,返回文件信息数组,包括文件名称、大小、类型等。
/* 获取文件信息
*@parame  $path      文件的地址(DzzPath)
*@return  文件信息数组(文件名称、大小、类型等信息)
*/
IO::getMeta($path);

文件内容获取:

  • 获取文件内容:使用IO::getFileContent($path)方法,返回文件内容。
/* 获取文件内容
*@parame  $path      文件的地址(DzzPath)
*@return  文件内容
*/
IO::getFileContent($path);

创建目录

  • 创建目录:使用IO::CreateFolder($path, $fname, $perm, $params, $ondup)方法,返回目录信息数组。
/* 创建目录
*@parame  $path      文件位置(DzzPath)
*@parame  $fname     目录名称
*@parame  $perm      目录权限
*@parame  $params    额外参数控制
*@parame  $ondup     创建方式,默认新建,如果参数值为overwrite将会覆盖同名
*@return  目录的信息数组
*/
IO::CreateFolder($path,$fname,$perm=0,$params=array(),$ondup='newcopy');
注意事项:

$path 如果为空或为0时,将自动创建该目录为顶级目录

$params参数包含目录创建默认项设置的控制(即folder表固有项),也可自定义目录属性信息(即不包含在folder表的相关项,将在folder_attr表存储)。

设置文件内容

  • 设置文件内容:使用IO::setFileContent($path, $fileContent, $force, $nocover)方法,返回文件信息数组。
/* 设置文件内容
*@parame  $path          文件的地址(DzzPath)
*@parame  $fileContent   文件的内容
*@parame  $force         强制保存,忽略权限
*@parame  $nocover       是否覆盖,默认不覆盖(此参数目前暂不支持除本地存储之外的其它云)
*@return  文件信息数组
*/
IO::setFileContent($path,$fileContent,$force=false,$nocover=true);
注意事项:

如果为本地存储,支持覆盖控制,其它云暂不支持(其它云暂执行覆盖当前文件内容操作)。

当为本地存储时:

如果$nocover参数为true,即不覆盖保存时,默认保存当前内容为新版本。逻辑处理如下:

1.若系统版本数已达到上限,即系统版本数量设置数(包含不开启版本和版本数量达到或超出版本数限制),该操作将移除当前操作文件最老版本,并保存当前内容为最新版本(如未开启版本,等同覆盖当前文件);

2.若版本数未达到系统版本数设置上限,包含版本开启并且版本数设置为0(即不限制版本数量),或当前文件版本小于最大版本数,该操作将保存当前内容为操作文件最新版本。

如果$nocover参数为false,执行覆盖保存,有版本时将自动覆盖文件最新版本内容,无版本时直接覆盖当前文件内容。

下载文件内容

  • 下载文件内容:使用IO::download($path, $filename)方法,保存文件到指定名称。
/* 下载文件内容
*@parame  $path      文件的地址(DzzPath)
*@parame  $filename  保存的文件名称
*/
IO::download($path,$filename='');
注意事项:
  1. 当$path的类型为目录时,会将整个目录打包成zip下载;
  2. 可以通过下面的链接方式来下载:index.php?mod=io&op=download&path=MGUzNXNOeWMxT1ZZbk9KTnp1VlJKWkhqZTNWT3hESlp5a2MwUk1PMnJscEg=&filename=1.png,path的值为dzzencode($path)的值;

文件删除

  • 文件删除:使用IO::Delete($path, $force)方法,返回包含文件名和文件icoid的数组。
/* 文件删除
*@parame  $path      文件的地址(DzzPath)
*@parame  $force     彻底删除,不放入回收站
*@return   数组(文件名和文件icoid)
*/
IO::Delete($path,$force=false);

文件重命名

  • 文件重命名:使用IO::rename($path, $text)方法,返回文件相关信息数组。
/* 文件重命名
*@parame  $path      文件的地址(DzzPath)
*@parame  $text      新文件名
*@return   数组(文件相关信息)
*/
IO::rename($path,$text);

文件拷贝

  • 文件拷贝:使用IO::CopyTo($opath, $path, $iscopy)方法,返回文件相关信息数组。
/* 文件拷贝
*@parame  $opath      被移动的文件路径(DzzPath)
*@parame  $path       目标位置
*@parame  $iscopy     是否是复制,默认0,如果值为1为复制,否则为剪切
*@return   数组(文件相关信息)
*/
IO::CopyTo($opath,$path,$iscopy=0);
注意事项:
  1. 如果操作对象为目录,不能向其下级移动
  2. 当操作本地文件移动本地其它位置时,遵循以下处理:

(1)如果为复制

a.如果复制文件源文件位置与目标位置相同,生成副本,否则新建

b.如果复制文件在目标位置有同名文件,生成副本,否则新建

c.如果复制文件为目录,且目标位置有同名目录,且源文件位置不与目标位置相同,则将源文件目录中文件放入目标位置同名目录中,否则新建

(2)如果为剪切

a.如果复制文件有重名,则生成新的文件名创建,否则,直接创建,并删除源文件

b.如果复制文件为目录,且目标位置有同名目录,则移动源文件目录其下文件至目标位置下同名目录,否则则创建

上传文件

  • 上传文件:使用IO::upload($fileContent, $path, $filename)方法,上传文件到指定位置。
/* 上传文件
//$fileContent:源文件数据;
//$container:目标位置;
//$path:对应路径;
IO::upload($fileContent,$path,$filename)

过滤文件名

  • 过滤文件名:使用IO::name_filter($name)方法,返回过滤后的文件名字符串。
/* 过滤文件名
*@parame  $name    文件名
*@return  字符串,过率的文件名
*/
IO::name_filter($name)
注意事项:

为保证程序正确稳定运行,对用户输入的文件名须过滤处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小胡2024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值