\App\Http\Controllers\ApiMyFileController

我的文件控制器

职责:个人中心文件管理的 HTTP 入口——列表/回收站/目录/上传/操作/下载 全套能力与文件维护页同构,但「仅本人」口径由 MyFileService 强制 (文件归属校验 400 隐藏存在性;预览/下载额外放行共享文件——头像等 avatar 场景自动共享、可能由管理员代传);上传恒为私有(is_shared=0), 无公共空间概念;异常经基类 callService 统一映射。

Summary

Methods
Properties
Constants
__construct()
index()
folders()
folderStore()
folderUpdate()
folderDestroy()
store()
rename()
move()
copy()
destroy()
restore()
forceDestroy()
purge()
batch()
scenes()
usage()
download()
preview()
refs()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
$myFileService
$fileService
N/A

Properties

$myFileService

$myFileService : \App\Services\Api\MyFileService

Type

MyFileService

Methods

__construct()

__construct(\App\Services\Api\MyFileService  $myFileService, \App\Services\Admin\MaintainFileService  $fileService) : mixed

Parameters

\App\Services\Api\MyFileService $myFileService
\App\Services\Admin\MaintainFileService $fileService

Returns

mixed —

index()

index(\Illuminate\Http\Request  $request) : \Illuminate\Http\JsonResponse

我的文件列表

仅返回当前登录用户上传的文件;status=trash 时返回本人回收站。

Parameters

\Illuminate\Http\Request $request

Returns

\Illuminate\Http\JsonResponse —

folders()

folders() : \Illuminate\Http\JsonResponse

我的目录树

仅本人空间(个人中心无公共空间概念,public 恒空)。

Returns

\Illuminate\Http\JsonResponse —

folderStore()

folderStore(\App\Http\Requests\Admin\MaintainFileRequest  $request) : \Illuminate\Http\JsonResponse

新建目录

在我的空间新建逻辑目录:同级重名拦截,父级须为本人目录(单源 ManagesFolders)。

Parameters

\App\Http\Requests\Admin\MaintainFileRequest $request

Returns

\Illuminate\Http\JsonResponse —

folderUpdate()

folderUpdate(\App\Http\Requests\Admin\MaintainFileRequest  $request, \App\Models\SysFileFolder  $folder) : \Illuminate\Http\JsonResponse

更新目录

支持重命名、移父级与同级排序;目录名同级不可重复(仅本人目录,单源 ManagesFolders)。

Parameters

\App\Http\Requests\Admin\MaintainFileRequest $request
\App\Models\SysFileFolder $folder

Returns

\Illuminate\Http\JsonResponse —

folderDestroy()

folderDestroy(\App\Models\SysFileFolder  $folder) : \Illuminate\Http\JsonResponse

删除目录

仅删除目录记录(逻辑层),不影响物理文件;目录下有文件或子目录时无法删除(单源 ManagesFolders)。

Parameters

\App\Models\SysFileFolder $folder

Returns

\Illuminate\Http\JsonResponse —

store()

store(\App\Http\Requests\Admin\MaintainFileRequest  $request) : \Illuminate\Http\JsonResponse

上传文件

落本人物理目录并登记本人归属;个人中心上传恒为私有(is_shared=0), 不参与共享维度。

Parameters

\App\Http\Requests\Admin\MaintainFileRequest $request

Returns

\Illuminate\Http\JsonResponse —

rename()

rename(\App\Http\Requests\Admin\MaintainFileRequest  $request, \App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

重命名文件

仅本人文件可改(他人文件 404)。

Parameters

\App\Http\Requests\Admin\MaintainFileRequest $request
\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —

move()

move(\App\Http\Requests\Admin\MaintainFileRequest  $request, \App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

移动到目录

仅本人文件可移动;目标须为本人目录。

Parameters

\App\Http\Requests\Admin\MaintainFileRequest $request
\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —

copy()

copy(\App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

复制文件

副本归属本人并占用本人配额(仅本人文件可复制)。

Parameters

\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —

destroy()

destroy(\App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

移入回收站

仅本人文件可回收;物理文件保留,可恢复。

Parameters

\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —

restore()

restore(\App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

从回收站恢复

仅本人回收站文件可恢复。

Parameters

\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —

forceDestroy()

forceDestroy(\App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

彻底删除

物理文件与记录一并删除,不可恢复(仅本人回收站文件)。

Parameters

\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —

purge()

purge() : \Illuminate\Http\JsonResponse

清空我的回收站

物理文件与记录一并清理,仅限本人回收站内容。

Returns

\Illuminate\Http\JsonResponse —

batch()

batch(\App\Http\Requests\Admin\MaintainFileRequest  $request) : \Illuminate\Http\JsonResponse

批量操作

trash/restore/copy/move 四动作;仅作用于本人文件(他人 id 静默跳过)。

Parameters

\App\Http\Requests\Admin\MaintainFileRequest $request

Returns

\Illuminate\Http\JsonResponse —

scenes()

scenes() : \Illuminate\Http\JsonResponse

上传场景清单

个人中心场景下拉的数据源——与文件维护页同构但走认证线(任何登录用户可用,无权限码)。

Returns

\Illuminate\Http\JsonResponse —

usage()

usage() : \Illuminate\Http\JsonResponse

我的空间用量

已用空间与生效配额(仅本人统计)。

Returns

\Illuminate\Http\JsonResponse —

download()

download(\App\Models\SysFile  $file) : \Symfony\Component\HttpFoundation\StreamedResponse|\Illuminate\Http\JsonResponse

下载文件

本人文件可下载(他人文件 404);头像等共享文件(avatar 场景自动共享, 可能由管理员经 admin 线代传)同样可读,与文件维护页「本人+共享」可见性口径一致; 响应强制附件方式不内联渲染(单源 streamFile 编排)。

Parameters

\App\Models\SysFile $file

Returns

\Symfony\Component\HttpFoundation\StreamedResponse|\Illuminate\Http\JsonResponse —

preview()

preview(\App\Models\SysFile  $file, \Illuminate\Http\Request  $request) : \Symfony\Component\HttpFoundation\StreamedResponse|\Illuminate\Http\JsonResponse

预览文件

本人文件可预览(他人文件 404);共享文件同下载口径放行(头像展示场景); ?variant=thumb 取缩略图,缺省取原图(单源 streamFile 编排)。

Parameters

\App\Models\SysFile $file
\Illuminate\Http\Request $request

Returns

\Symfony\Component\HttpFoundation\StreamedResponse|\Illuminate\Http\JsonResponse —

refs()

refs(\App\Models\SysFile  $file) : \Illuminate\Http\JsonResponse

文件引用清单

仅本人文件可查(他人文件 404)。

Parameters

\App\Models\SysFile $file

Returns

\Illuminate\Http\JsonResponse —