微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel excel 导出带有特殊字符文件名的图像

如何解决Laravel excel 导出带有特殊字符文件名的图像

我想做什么:

我正在尝试使用 Laravel-excel 导出包含图像的 Excel。我正在使用 Blade View 导出数据。

出口控制器代码

public function view(): View
{
    if ($this->categories_id)
        $products = Product::with('productLog')
            ->whereIn('category_id',$this->categories_id)
            ->orderBy('category_id')->get();
    else
        $products = Product::get();

    return view('exports.products',['products' => $products]);
}

这很完美。

刀片表代码

<tbody>
    @foreach($products as $key => $product)
        <tr>
            <td>
                @if(is_file(public_path('storage/uploads/products/main/'.$product->images[0]->large_image)))
                    <img height="80px" width="80px" src="{{ public_path('storage/uploads/products/main/'.$product->images[0]->large_image) }}" alt="">
                @else
                    <img height="80px" width="80px" src="{{ public_path() }}/assets/placeholder.png" alt="">
                @endif
            </td>
            <td>{{ $product->name }}</td>
            <td>{{ $product->code }}</td>
            <td><span>{{ $product->barcode }}</span></td>
            <td>{{ $product->category->name }}</td>
            <td>{{ $product->report_total_quantity }}</td>
            <td>{{ $product->report_avg_purchase_price }}</td>
            <td>{{ $product->report_total_credit }}</td>
        </tr>
    @endforeach
</tbody>

这也很完美

问题:

一切正常,直到文件名包含(阿拉伯字符)。 每当图像名称包含阿拉伯字符时,它都会返回损坏的数据并关闭 Excel 文件

经过长时间的调试,我确信 100% 是阿拉伯字符的问题。

我想出的解决方案:

  • 更改包含阿拉伯文文件名文本的所有图像。
  • 尝试对文件名进行编码,但我不知道如何解决,甚至不知道如何解决问题。

谢谢,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。