ctessier / nova-advanced-image-field

🌄 📐 A Laravel Nova advanced image field with cropping and resizing using Vue Advanced Cropper and Intervention Image
https://novapackages.com/packages/ctessier/nova-advanced-image-field
MIT License
100 stars 26 forks source link

Fix image transform on Windows server by forcing temporary path #102

Closed ctessier closed 1 year ago

ctessier commented 1 year ago

Introduction

This issue seems to occur when running PHP on a Windows server. This pull requests fixes #52, fixes #72, fixes #92, fixes #100, fixes #101

Error

Intervention throws Encoding format (tmp) is not supported. This happens because the package uses the Laravel's UploadedFile directly when doing the crop/resize transformation. It tries to save it after the transformation and before passing it onto Laravel for final storage. But at this point, the UploadedFile is still in a temp folder. On Windows, it seems that Intervention struggles to determine the file's extension and uses tmp, which fails.

Solution

Forcing the extension using the one from the UploadedFile seems to work. This pull requests therefore provides parameters to the Intervention's save method to specify the full path (even though it's still the temp one) and most importantly, the extension.

sonarcloud[bot] commented 1 year ago

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication