Skip to content

文件功能

判断上传权限

php
\FresnsCmdWord::plugin('Fresns')->checkUploadPerm($wordBody);
参数名类型是否必传说明
uidNumberYES上传者 UID
usageTypeStringYES文件用途类型
usageFsidStringYES用途目标 fsid
archiveCodeStringNOelementType 文件类扩展档案
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
extensionStringNO文件扩展名
sizeNumberNO单位 Byte
durationNumberNO音视频时长,单位
参数说明
usageTypeusageFsidarchiveCode
userAvatar用户的 uidOrUsername
userBanner用户的 uidOrUsername
userArchive用户的 uidOrUsername扩展档案 code
conversation接收用户的 uidOrUsername
post帖子 ID pid
comment评论 ID comment
postDraft帖子草稿 ID did
postDraftArchive帖子草稿 ID did扩展档案 code
commentDraft评论草稿 ID did
commentDraftArchive评论草稿 ID did扩展档案 code
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        "usageType": "Number / 用途类型编号",
        "tableName": "String / 表名",
        "tableColumn": "String / 字段名",
        "tableId": "Number / 主键 ID",
        "tableKey": "String / FSID",
        "maxUploadNumber": "Number / 剩下可上传数量"
    }
}

获取 S3 上传令牌

php
\FresnsCmdWord::plugin('Fresns')->getUploadToken($wordBody);
参数名类型是否必传说明
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
pathStringYES文件路径
minutesNumberYES有效分钟数
  • 获取 S3 预签名 URL
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        "type": "presignedUrl",
        "method": "String / 请求方式",
        "url": "String / 请求地址",
        "headers": "Object / 请求标头",
        "activeMinutes": "Number / 有效期分钟数",
        "expiration": "String / 到期时间 Y-m-d H:i:s" // UTC+0
    }
}
json
{
    "code": 0,
    "message": "ok",
    "data": {
        "type": "sts",
        // 待完善
    }
}

上传文件

php
\FresnsCmdWord::plugin('Fresns')->uploadFile($wordBody);
参数名类型是否必传说明
fileFileYES文件
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
warningTypeNumberNO文件警告 1.无 2.Nudity 3.Violence 4.Sensitive
usageTypeNumberYES文件用途类型
platformIdNumberYES平台编号(配置表 platforms 键名的键值)
tableNameStringYES来源表名(哪个张使用)
tableColumnStringYES来源字段名(哪个字段使用)
tableIdNumberNO来源表主键 ID
tableKeyStringNO来源表键名 PrimaryHelper::fresnsPrimaryId()
moreInfoObjectNO自定义内容
aidStringNO账号参数 file_usages->account_id
存储时由 aid 转换成 accounts->id
uidNumberNO用户参数 file_usages->user_id
存储时由 uid 转换成 users->id
  • tableIdtableKey 二选一必传一个。
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        // 通用数据结构->文件信息
    }
}

获取临时 URL 文件信息[单个]

php
\FresnsCmdWord::plugin('Fresns')->getTemporaryUrlFileInfo($wordBody);
参数名类型是否必传说明
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
fileIdOrFidStringNOfiles->id 或者 files->fid
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        // 通用数据结构->文件信息
    }
}
逻辑说明
  • 如果未开启临时 URL,可使用模型中封装功能输出信息。
  • $file->getFileInfo();

获取临时 URL 文件信息[多个]

php
\FresnsCmdWord::plugin('Fresns')->getTemporaryUrlFileInfoList($wordBody);
参数名类型是否必传说明
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
fileIdsOrFidsArrayNOfiles->id 或者 files->fid
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": [
        {
            // 通用数据结构->文件信息
        },
        {
            // 通用数据结构->文件信息
        }
    ]
}
逻辑说明
  • 如果未开启临时 URL,可请求封装功能输出信息。
  • FileHelper::fresnsFileInfoListByIds('fileIdsOrFids');

获取源文件临时 URL

php
\FresnsCmdWord::plugin('Fresns')->getTemporaryUrlOfOriginalFile($wordBody);
参数名类型是否必传说明
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
fileIdOrFidStringNOfiles->id 或者 files->fid
结果示例
json
{
    "code": 0,
    "message": "ok",
    "data": {
        "originalUrl": "由 file->original_path 字段拼接",
        // original_path 为空时,由 files->path 字段拼接替补
    }
}
逻辑说明
  • 如果未开启临时 URL,可请求模型中封装功能输出信息。
  • $file->getFileOriginalUrl();

逻辑删除文件

php
\FresnsCmdWord::plugin('Fresns')->logicalDeletionFiles($wordBody);
参数名类型是否必传说明
fileIdsOrFidsArrayYESfiles->id 或者 files->fid

物理删除文件

php
\FresnsCmdWord::plugin('Fresns')->physicalDeletionFiles($wordBody);
参数名类型是否必传说明
typeNumberYES1.图片 / 2.视频 / 3.音频 / 4.文档
fileIdsOrFidsArrayYESfiles->id 或者 files->fid
  • fileIdsfids 数组值文件类型必须属于同一个 type 类型的文件。

Released under the Apache-2.0 License