在 Storage 文件夹外使用 storeAs 保存文件
Save files with storeAs outside the Storage folder
我在 Laravel 中有一个 API 存储文件
$request->file("file$i")->storeAs('categories', $nameFile)
就目前而言,它将数据正确存储在地址中
/var/www/html/apiapp/storage/app/public/categories
但我想将这些文件保存在文件夹中
/var/archives
因为这些文件将被另一个应用程序访问
将文件保存到网络服务器根目录之外的目录/var/www/html
您应该配置网络服务器。类似问题:
PHP upload a file to a directory outside the webserver root
将 Apache 设置为允许访问不在文档根目录下的目录
你也可以阅读这篇文章:
Mapping URLs to Filesystem Locations
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')
确保用户 运行 网络服务器也有权保存到磁盘上的该文件夹。
另一种选择是共享外部存储,例如 AWS S3。此配置遵循相同的想法。
我在葡萄牙语的 Whosebug 上收到了这个 answer,它运行良好
我在 Laravel 中有一个 API 存储文件
$request->file("file$i")->storeAs('categories', $nameFile)
就目前而言,它将数据正确存储在地址中
/var/www/html/apiapp/storage/app/public/categories
但我想将这些文件保存在文件夹中
/var/archives
因为这些文件将被另一个应用程序访问
将文件保存到网络服务器根目录之外的目录/var/www/html
您应该配置网络服务器。类似问题:
PHP upload a file to a directory outside the webserver root
将 Apache 设置为允许访问不在文档根目录下的目录
你也可以阅读这篇文章: Mapping URLs to Filesystem Locations
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')
确保用户 运行 网络服务器也有权保存到磁盘上的该文件夹。
另一种选择是共享外部存储,例如 AWS S3。此配置遵循相同的想法。
我在葡萄牙语的 Whosebug 上收到了这个 answer,它运行良好