php - 重命名 Laravel 公用文件夹中的文件
问题描述
我的公用文件夹中有这个结构:
/images
/player_icons
Ajax.png
Barcelona.png
...
我需要让管理员用户只需输入新名称即可重命名文件,而不是上传新文件。
我尝试过老式的 PHP 方式:
rename('/images/player_icons/Ajax.png', '/images/player_icons/test.png');
这会产生错误:
File not found at path: images/player_icons/Ajax.png
我也尝试过使用Storage
外观,虽然从外观上看,这在公用文件夹中不起作用:
Storage::move('/images/player_icons/Ajax.png', '/images/player_icons/test.png');
我不明白为什么该rename()
选项不起作用。如果我example.com/images/player_icons/Ajax.png
在浏览器中访问,图像就在那里。
我该如何做到这一点?
解决方案
您可能需要public_path
尝试一下辅助功能
public_path 函数返回公共目录的完全限定路径。您还可以使用 public_path 函数生成公共目录中给定文件的完全限定路径
但是,直接重命名公共目录上的内容意味着您必须授予此目录写入权限或更改此目录的所有权以由服务器用户拥有(这几乎是www-data
),这是一种冒险的事情。
更好的方法是(符号链接)存储路径(默认情况下是可写的)并让用户在那里上传和重命名文件
更多信息可以在这里找到:文件系统文档
推荐阅读
- python-c-api - 从同一个 C 扩展模块调用不同方法的正确方法?
- jquery - 如果我悬停子导航内容,箭头如何保持向上?
- go - Go websocket错误:关闭1006(异常关闭):意外EOF
- ruby - Do循环中的Split方法通过空格分隔数组中的字符串值
- laravel - Laravel 5.8 身份验证插件未启用
- apache-spark - 从 Java/Scala 应用程序执行 PySpark 代码
- javascript - ECMAScript 是否区分大小写?
- python - Python/Pandas:使用查找 DataFrame + 函数替换 DataFrame 中的特定/空值
- html - 初学者 - 我无法让我的 html 显示图像
- python - model.evaluate() 根据批量大小改变结果,当由生成器提供时