知道了。该错误是由于未提及的进程造成的。这个
UploadedFile
application/x-gzip
,扩展名为空,因此生成的文件另存为
[hashed_file_name].
而不是
[hashed_file_name].tar.gz
GuzzleHttp
Symfony
猜猜分机。
$extension = ExtensionGuesser::getInstance()->guess($contentType);
由于mimetype,使用
Content-Type
.gz
而不是
.tar.gz
.tgz
. 对我上传脚本的更改修复了它。
$alias = $file->getClientOriginalName();
$mimetype = $file->getMimeType();
$extension = $file->guessClientExtension() ?: pathinfo($alias, PATHINFO_EXTENSION);
if ( ends_with($mimetype, 'x-gzip') && ends_with($alias, ['tar.gz', 'tgz']) ) {
$mimetype = 'application/tar+gzip';
$extension = 'tar.gz';
}
$hash = $file->hashName();
if ( ends_with($hash, '.') ) {
$hash .= $extension;
}
$path = $file->storeAs($storage, $hash);