Laravel 代客不提供没有扩展名的 jpeg 文件

Laravel Valet not serving jpeg files with no extension

Laravel Valet 服务 jpeg 文件,没有扩展名,大小错误,校验和当然也改变了。 我正在发布有关示例文件的信息,末尾带有 .0 的文件是通过代客下载的。

$ls -la
f2b40f33d19b147bc8d0e88f4b8c489e35c165dd
-rw-r--r--   23905
f2b40f33d19b147bc8d0e88f4b8c489e35c165dd.0
-rw-r--r--   23750 
</pre>

$ls -la
$ md5 f2b40f33d19b147bc8d0e88f4b8c489e35c165dd
MD5 (f2b40f33d19b147bc8d0e88f4b8c489e35c165dd) = 9b5d3e104764e4b4c2b9e942704091f1
$ md5 f2b40f33d19b147bc8d0e88f4b8c489e35c165dd.0
MD5 (f2b40f33d19b147bc8d0e88f4b8c489e35c165dd.0) = 944e47ce0ccd4da18b7761af0e5f0226
</pre>

我尝试向 CaddyFile 添加 mime,但 caddy 似乎不支持没有扩展名的文件的 mime。我尝试了以下内容:

mime . image/jpeg
mime .* image/jpeg
mime * image/jpeg</pre>

具有 .jpeg 扩展名的相同文件没问题,有什么问题吗?

Valet 在 ValetDriver.php 中使用 mimes.php 根据文件扩展名确定正确的内容类型:

...
"jpeg" => "image/jpeg",
"jpg" => "image/jpeg",
"jpe" => "image/jpeg",
...

您可以在此处添加空扩展名,以提供没有扩展名的所有内容,如 image/jpeg

"" => "image/jpeg"

但是,Valet 不应该服务器扩展名为空的文件,您会收到破坏图像的通知

Notice: Undefined index: extension in ...cli\drivers\ValetDriver.php on line 121

作为快速破解,您可以更改 ~/.composer/vendor/cli/drivers/ValetDriver.php 中的第 #121 行以抑制通知

@$extension = pathinfo($staticFilePath)['extension'];