Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel:存储未将文件放入公用文件夹_Php_Laravel - Fatal编程技术网

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 nope
public_path()
返回到
/public
根文件夹的绝对路径。啊,我知道你现在想做什么了。顺便说一句,.作为上述的一个补充,使用putFileAs()方法,允许您指定文件名,如果您有一些文件命名约定,这很方便。例如:
Storage::disk('public')->putFileAs($location,$file,$fileName,'public')
遇到了完全相同的问题。这些文件显然是错的。Laravel试图保持他们的文档如此简单和干净,却忽略了如此多的用例,这真是大错特错。