我在Laravel的API中存储了文件
$request->file("file$i")->storeAs('categories', $nameFile)
目前,它正确地将数据存储在地址
中/var/www/html/apiapp/storage/app/public/categories
但我想将这些文件保存在文件夹
中/var/archives
因为这些文件将被其他应用程序访问
答案 0 :(得分:2)
storeAs
的第三个参数告诉文件存储磁盘 应该保存$path = $request->photo->storeAs('images', 'filename.jpg', 's3');
因此,在
config/filesystem.php
中创建一个新的磁盘并指向它/var/archives
'disks' => [ // ... 'archive' => [ 'driver' => 'local', 'root' => '/var/archives', ], // ...
在代码中:
$request->file("file$i")->storeAs('categories', $nameFile, 'archive')
确保运行Web服务器的用户具有保存的权限 磁盘上的那个文件夹。
另一种方法是共享外部存储,例如AWS S3 例如。对此的配置遵循相同的想法。
我在葡萄牙语的stackoverflow上收到了这个answer,它运行得很好
答案 1 :(得分:0)
将文件保存到网络服务器根目录以外的目录/var/www/html
您应该配置您的网络服务器。类似的问题:
PHP upload a file to a directory outside the webserver root
Set Apache to allow access for a directory not under document root
您也可以阅读此内容: Mapping URLs to Filesystem Locations