app/config.php 下配置了 'public_path' => base_path(false) . DIRECTORY_SEPARATOR . 'public',
上传excel文件到public指定目录下可以
但是读取文件时候出错
$allFilePath = public_path('/storage/'.$filePath); //第一行是文件路径
$allSheets = Excel::import($realPath)->toArray(); //这一行就报错了,在本地可以,一切正常
采用的读取excel库是 dcat/easy-excel 1.1版本
也按照网上的教程 function.php 里写了一个函数:
function get_public_resource_path($path)
{
static $resourcePathMap = [];
if (!\class_exists(\Phar::class, false) || !\Phar::running()) {
return $path;
}
$tmpPath = runtime_path() . DIRECTORY_SEPARATOR . 'temp';
if (!is_dir($tmpPath)) {
mkdir($tmpPath);
}
$filePath = $tmpPath . DIRECTORY_SEPARATOR . basename($path);
clearstatcache();
if (!isset($resourcePathMap[$path]) || !is_file($filePath)) {
file_put_contents($filePath, file_get_contents($path));
$resourcePathMap[$path] = $filePath;
}
return $resourcePathMap[$path];
}
在使用的时候
$allFilePath = public_path("/storage/". $filePath);
$realPath = get_public_resource_path($allFilePath);
$allSheets = Excel::import($realPath)->toArray();
依然报错,请求大佬指点迷津!