繁体   English   中英

如何从 Laravel Nova 的文件下载中删除不需要的换行符?

[英]How do remove unwanted linefeed charachter from file-download in Laravel Nova?

在 Laravel Nova 应用程序中,我遇到了一个奇怪的问题:每当我尝试下载文件时,我在第一行(0A,一个空行)上有一个换行符。 这会损坏图像、zip 文件等。 但这是什么原因造成的?

我已经尝试/检查过:

  1. 检查结束标签上的所有 php 文件(没有)
  2. 硬盘上的原始文件在创建时没有这个额外的换行符
  3. 检查自上次发布以来的每个 php 文件是否正确 UTF-8 编码
  4. 从实时服务器复制 composer.lock 并再次安装所有内容
  5. Ran composer dump, php artisan cache:clear, php artisan clear-compiled
  6. 检查自上次发布以来的所有代码更改(没有问题)
  7. 试过 Chrome 和 Firefox

这是一些产生此错误的 Laravel Nova 代码:

return Fields\Image::make(__('Image')), 'imageStorage')
        ->rules('image', "dimensions:max_width={$image_max_width},max_height={$image_max_height}")
        ->squared()
        ->disk(Enums\StorageDisk::APP_PUBLIC_DISTRIBUTORS)
        ->path(DistributorPath::products($distributorId))
        ->deletable(false)
        ->prunable()
        ->onlyOnForms(); 

第一个字符始终为 0A。

那么,我该如何找到原因呢? 有什么技巧或策略吗?

简短的回答:换行符隐藏在路由文件中。

这个错误几乎是一年前犯的,直到现在才出现,因为在应用程序创建的任何 output (html / xml) 中都没有问题。 当我尝试 output 二进制文件(zip / images)时开始出现问题。

那么我是如何找到这个错误的呢? die('find bug;');

对于未来的任何人:

  • 从索引开始。php
  • 放置die('find bug;'); 在一个地方并进行测试。
  • 不要害怕将它放在供应商或库代码中。
  • 没有换行符? 删除die('find bug;'); 并将其放在下一次通话中。
  • 找到换行符了吗? 所以现在你现在换行符介于两者之间。
  • 放大并找到它!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM