Php Laravel:存储未将文件放入公用文件夹
当我使用:Php Laravel:存储未将文件放入公用文件夹,php,laravel,Php,Laravel,当我使用: Storage::putFile('documents', $content, 'public'); 我希望公用目录中的文件夹结构如下: + +-- storage +--|-- app +--|--|-- public +--|--|--|-- documents +--|--|--|--|-- XyZ.pdf + 而不是: + +-- storage +--|-- app +--|--|-- documents +--|--|--|-- XyZ.pdf +--|--|-- p
Storage::putFile('documents', $content, 'public');
我希望公用目录中的文件夹结构如下:
+
+-- storage
+--|-- app
+--|--|-- public
+--|--|--|-- documents
+--|--|--|--|-- XyZ.pdf
+
而不是:
+
+-- storage
+--|-- app
+--|--|-- documents
+--|--|--|-- XyZ.pdf
+--|--|-- public
+
因此,要强制存储在“正确”的位置,我需要明确地指出:
Storage::putFile('public/documents', $content, 'public');
返回给我的路径无法保存在数据库中,因为其值为“public/documents/xyz.pdf”
,无法与asset()
helper正常工作
如何使用
Storage
facade将文件放入Storage/app/public
这在文档中没有明确说明
查看config/filesystems.php
,我们有一个public
磁盘。只要使用它:
Storage::disk('public')->put('documents', $content);
Storage::put(公共路径('documents'),…)代码>?您可以尝试这里给出的答案:@CyRossignol nopepublic_path()
返回到/public
根文件夹的绝对路径。啊,我知道你现在想做什么了。顺便说一句,.作为上述的一个补充,使用putFileAs()方法,允许您指定文件名,如果您有一些文件命名约定,这很方便。例如:Storage::disk('public')->putFileAs($location,$file,$fileName,'public')
遇到了完全相同的问题。这些文件显然是错的。Laravel试图保持他们的文档如此简单和干净,却忽略了如此多的用例,这真是大错特错。