peinhu / AetherUpload-Laravel

A Laravel package to upload large files 上传大文件的Laravel扩展包
GNU General Public License v2.0
919 stars 126 forks source link

请问能否实现以下功能 #69

Closed sheghai closed 5 years ago

sheghai commented 5 years ago

1、【一般设置】位于 storage/app/;可以自定义上传目录,比如/public/uploads/;至于为什么要在这下面,项目会涉及到其他上传插件,比如产品图片,头像; 2、按shopid上传,如/public/uploads/$shopid/;至于为什么,shopid就清楚了,这样方便管理。 3、目前版本,怎么 删除上传的文件,比如要重新上传一张产品的logo,不删除,会累积很多。

个人感觉非常紧迫需要

peinhu commented 5 years ago

1、软连接可实现,参考php artisan storage:link命令的实现。

2、这个属于业务相关的特殊需求,本扩展原则上只负责上传,与业务不产生任何耦合。如果一定要这种路径保存文件,可考虑使用上传完成事件,即配置文件中的event_upload_complete对应配置项,在文件上传完成后使用移动文件指令移动到你想要的文件夹下(同一个文件系统内,mv的速度是瞬间的,因为它只改了几个指针,不会真的移动数据)。

3、readme里面有写,\AetherUpload\Util::deleteResource($savedPath); //删除对应的资源文件 \AetherUpload\Util::deleteRedisSavedPath($savedPath); //删除对应的redis秒传记录

peinhu commented 5 years ago

关于第2条,我想了下其实放到表单提交后的逻辑处理中更好,这样你的$shopid就能传过去了,上传完成事件中没法获取你的$shopid。