我正在废弃从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授予该文件夹的所有权限 有什么想法吗?
谢谢!
答案 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);