You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel Excel导出图片报错:存储路径文件无法找到的解决咨询

解决Laravel Excel导出带图片Excel时PHPExcel_Exception文件找不到的问题

这个报错的核心原因是:你使用的老版本Laravel Excel(基于PHPExcel)在处理图片时,无法通过HTTP URL可靠地读取图片资源——哪怕浏览器能打开这个URL,PHP可能因为配置限制(比如allow_url_fopen关闭)或者权限问题,无法通过HTTP请求获取到本地服务器上的文件。

下面是两种可行的解决方案:

方案一:改用本地文件路径替代HTTP URL

直接在视图中使用图片的本地绝对路径,让PHPExcel可以直接读取本地文件,而不是通过HTTP请求获取。

修改视图中的图片代码:

{{-- 替换原来的asset()生成的URL,改用public_path获取本地绝对路径 --}}
<img src="{{ public_path('storage/photos/' . $car->lot_id . '/1.jpg') }}" width="80px">

注意事项:

  1. 确保你已经执行过php artisan storage:link,把storage/app/public目录软链接到public/storage,这样public_path('storage/...')才能正确指向对应的文件。
  2. 检查服务器运行用户(比如www-data)是否拥有读取storage/app/public/photos目录下文件的权限。

方案二:手动在Excel中插入图片(更可靠)

如果方案一还是有问题,你可以在控制器中手动遍历数据,将图片插入到Excel的指定单元格位置,完全避开视图中img标签的路径问题。

修改控制器代码:

use Illuminate\Support\Facades\File;

public function WholeSaleStockExport(Request $request, BidFilters $filters) { 
    Excel::create('name: ' . date("Y/m/d"), function($excel ) use($filters, $request) { 
        $excel->sheet('today', function($sheet) use($filters, $request) { 
            $bid = ClientCar::filter($filters)->orderBy('lot_date', 'ASC')->get(); 
            $sheet->loadView('manager.sheets.wholesale', array('cars' => $bid)); 

            // 手动插入图片到指定单元格(假设图片放在D列,数据从第2行开始)
            $row = 2;
            foreach ($bid as $car) {
                $imagePath = storage_path('app/public/photos/' . $car->lot_id . '/1.jpg');
                // 先检查文件是否存在,避免报错
                if (File::exists($imagePath)) {
                    // insertImage(文件路径, 单元格位置, 宽度, 高度)
                    $sheet->insertImage($imagePath, 'D' . $row, 80, 80);
                }
                $row++;
            }
        }); 
    })->download('xls'); 
}

然后可以把视图中的<img>标签移除,因为手动插入的图片会直接显示在Excel的对应位置。

额外排查点

如果以上方案都无效,可以检查:

  • PHP配置中的allow_url_fopen是否开启(不过还是推荐用本地路径,开启这个配置有安全风险);
  • 确认图片的本地路径完全正确,可以通过dd(storage_path('app/public/photos/' . $car->lot_id . '/1.jpg'))输出路径,然后在服务器上验证该文件是否存在。

内容的提问来源于stack exchange,提问作者Dmitry Malys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:57:22