使用storeAs在Storage文件夹之外保存文件

时间:2018-01-04 18:51:32

标签: laravel-5.5

我在Laravel的API中存储了文件

$request->file("file$i")->storeAs('categories', $nameFile)

目前,它正确地将数据存储在地址

/var/www/html/apiapp/storage/app/public/categories

但我想将这些文件保存在文件夹

/var/archives

因为这些文件将被其他应用程序访问

2 个答案:

答案 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