提问者:小点点

Laravel:如何访问本地磁盘中的文件文件不存在


我试图编辑一个excel文件后上传它在laravel.该文件被上传到本地磁盘,所以没有人可以从公共访问它。

文件系统。php

'local' => [
        'driver' => 'local',
        'root' => storage_path('app')

Routes.php

Route::get('test',function()
{

    // Create new PHPExcel object
    $objPHPExcel = new PHPExcel();
    $objPHPExcel = PHPExcel_IOFactory::load(Storage::disk('local')->url('margin/analyser/0IGkQQgmGXkHrV9ISnBTrGyZFUPfjz3cWJbLGbDN.xlsx'));
    $objPHPExcel->setActiveSheetIndex(0);
    echo $objPHPExcel->getActiveSheet()->getHighestRow();
})->middleware('admin');

我不断地犯错误:

Could not open /storage/margin/analyser/0IGkQQgmGXkHrV9ISnBTrGyZFUPfjz3cWJbLGbDN.xlsx for reading! File does not exist.

这很有效

     $objPHPExcel = PHPExcel_IOFactory::load('..'.Storage::disk('local')->url('app/margin/analyser/0IGkQQgmGXkHrV9ISnBTrGyZFUPfjz3cWJbLGbDN.xlsx'));

但这很烦人。我想指定“根”=


共1个答案

匿名用户

URL方法用于获取文件的URL(即:从浏览器访问文件的内容)。要使用的id是get()方法。

$contents = Storage::get(''margin/analyser/0IGkQQgmGXkHrV9ISnBTrGyZFUPfjz3cWJbLGbDN.xlsx'');

尽管如此,使用Laravel操作上传的文件仍然是一种更简单的方法。

// this will take the uploaded file from the request
// and store it into `/storage/someFolder`
$path = $request->file('file')->store('someFolder');

然后,您可以使用返回到$path的值访问该文件。

编辑

经过下面的讨论,OP决定,即使它不是完美的解决方案,他也会使用$客观PHPExcel=PHPExcel_IOFactory::加载('...'。Storage::disk('本地')-