打包bin文件后,无法打开public下的文件

fanyin

问题描述

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();

依然报错,请求大佬指点迷津!

427 0 0
0个回答

×
🔝