[9.x] do not resolve already set headers #42760
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently
Illuminate\Filesystem\FilesystemAdapter@response
, will implicitly calculate theContent-Type
,Content-Length
, andContent-Disposition
default headers values, even when the user already provided those headers.Also, the calculated default values end up not being used, as the default headers are merged to the user provided headers using the
+
operator, which preserve keys already present.As outlined in issue #42758 , this can create an issue, for example, when a developer is trying to send a custom file extension, even when they provide a custom
Content-Type
header, as theFilesystemAdapter@mimeType
method would be called anyways.This PR:
Content-Type
,Content-Length
, andContent-Disposition
headers are not present before calculating their corresponding defaultNote
I previouslu sent PR #42759 to the 8.x branch, but after further inspection as 8.x branch used a previous version of
league/flysystem
it doesn't thrown an error on an unknown mime-type.