使用Laravel删除文件

时间:2018-05-07 15:16:49

标签: laravel laravel-5

我正在废弃从Laravel项目中删除文件。 该文件位于/ storage / exports目录中,它是使用Laravel Excel库存储在磁盘上的excel。 这是我的代码:

$path = $excel->store('xls', false, true)['full'];
...send the xls via mail....
Storage::delete($path);

当我用file_exist检查文件的存在时,我得到了,所以Laravel能够读取该文件。 我还检查了该文件夹的权限,并使用chmod 777授予该文件夹的所有权限 有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:0)

尝试将文件存储在storage/app/exports中。 Storage类存储文件的默认位置为storage/app

最好不要使用Excel类来存储文件,而是使用Storage类保存文件:Storage::put('exports/excelfile.xls', $fileContents);

答案 1 :(得分:0)

即使您使用的是Laravel,也可以使用常规的PHP函数。

unlink($path);

答案 2 :(得分:0)

存储驱动程序已经知道了根目录,因此$ path必须是相对的,而不是满的。因此,如果您的文件位于: /this/is/the/full/path.xls,并且配置filesystems.disks.local.root设置为/this/is/the/full,您基本上可以在/this/is/the/full/this/is/the/full/path.xls中查找文件。

您有两种选择。

1)向该配置添加新驱动程序,并直接引用它:

'custom_location' => [
    'driver' => 'local',
    'root' => '/some/other/root/path',
]

Storage::driver('custom_location')->delete($relativePathFromRoot)

2)创建一次性:

$rootPath = '/some/other/root/path';
$client = Storage::createLocalDriver(['root' => $rootPath]);
$client->delete($relativePathFromRoot);