Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Uploading image throws exception, C:\temp is writable #9072

Open
2 tasks done
enpa opened this issue Feb 1, 2021 · 0 comments
Open
2 tasks done

Uploading image throws exception, C:\temp is writable #9072

enpa opened this issue Feb 1, 2021 · 0 comments

Comments

@enpa
Copy link

enpa commented Feb 1, 2021

Describe the bug
When uploading a picture to an asset, the picture is displayed as thumbnail near the upload button. Saving leads to an exception ("Image source not readable" in AbstractDecoder.php line 346). Permissions to c:\temp are set as requested.

Intersrtingly, if I uploade the image to the asset as file, there is no issue:
as_file

To Reproduce
Steps to reproduce the behavior:

  1. Open an asset without picture
  2. Click on edit
  3. Upload a picture
  4. Click save

Screenshots
Picture uploaded, thumbnail shown, looks ok. After clicking on "Save" exception is thrown.
pic_uploaded

Trace

[2021-02-01 18:37:36] production.ERROR: Image source not readable {"userId":8,"exception":"[object] (Intervention\\Image\\Exception\\NotReadableException(code: 0): Image source not readable at D:\\Snipe-IT\\vendor\\intervention\\image\\src\\Intervention\\Image\\AbstractDecoder.php:346)
[stacktrace]
#0 D:\\Snipe-IT\\vendor\\intervention\\image\\src\\Intervention\\Image\\AbstractDriver.php(66): Intervention\\Image\\AbstractDecoder->init(false)
#1 D:\\Snipe-IT\\vendor\\intervention\\image\\src\\Intervention\\Image\\ImageManager.php(54): Intervention\\Image\\AbstractDriver->init(false)
#2 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\Facades\\Facade.php(261): Intervention\\Image\\ImageManager->make(false)
#3 D:\\Snipe-IT\\app\\Http\\Requests\\ImageUploadRequest.php(97): Illuminate\\Support\\Facades\\Facade::__callStatic('make', Array)
#4 D:\\Snipe-IT\\app\\Http\\Controllers\\Assets\\AssetsController.php(334): App\\Http\\Requests\\ImageUploadRequest->handleImages(Object(App\\Models\\Asset))
#5 [internal function]: App\\Http\\Controllers\\Assets\\AssetsController->update(Object(App\\Http\\Requests\\ImageUploadRequest), '1')
#6 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Controller.php(54): call_user_func_array(Array, Array)
#7 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('update', Array)
#8 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\Assets\\AssetsController), 'update')
#9 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Route.php(176): Illuminate\\Routing\\Route->runController()
#10 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(681): Illuminate\\Routing\\Route->run()
#11 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(130): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#12 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php(43): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#13 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#14 D:\\Snipe-IT\\app\\Http\\Middleware\\AssetCountForSidebar.php(56): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#15 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): App\\Http\\Middleware\\AssetCountForSidebar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#16 D:\\Snipe-IT\\vendor\\laravel\\passport\\src\\Http\\Middleware\\CreateFreshApiToken.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#17 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Laravel\\Passport\\Http\\Middleware\\CreateFreshApiToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 D:\\Snipe-IT\\app\\Http\\Middleware\\CheckForTwoFactor.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): App\\Http\\Middleware\\CheckForTwoFactor->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#20 D:\\Snipe-IT\\app\\Http\\Middleware\\CheckLocale.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): App\\Http\\Middleware\\CheckLocale->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php(76): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\EncryptCookies.php(66): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#28 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#29 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(683): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#30 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(658): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#31 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(624): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#32 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(613): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#33 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(170): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#34 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(130): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#35 D:\\Snipe-IT\\vendor\\barryvdh\\laravel-debugbar\\src\\Middleware\\InjectDebugbar.php(65): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#36 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 D:\\Snipe-IT\\app\\Http\\Middleware\\SecurityHeaders.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): App\\Http\\Middleware\\SecurityHeaders->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#39 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#40 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#41 D:\\Snipe-IT\\app\\Http\\Middleware\\CheckForDebug.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#42 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): App\\Http\\Middleware\\CheckForDebug->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 D:\\Snipe-IT\\app\\Http\\Middleware\\CheckForSetup.php(26): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): App\\Http\\Middleware\\CheckForSetup->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#45 D:\\Snipe-IT\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#46 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#47 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Middleware\\ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#48 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(56): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#50 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#51 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#52 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#53 D:\\Snipe-IT\\vendor\\barryvdh\\laravel-cors\\src\\HandlePreflight.php(29): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#54 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(171): Barryvdh\\Cors\\HandlePreflight->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#55 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(105): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#56 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(145): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#57 D:\\Snipe-IT\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#58 D:\\Snipe-IT\\public\\index.php(58): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#59 {main}

Permissions on c:\temp
IUSR, NETWORK SERVICE and IIS_IUSRS: Full control.
Third entry from the top: Active directory group with all users able to access the page on IIS. Full control.
Fourth entry from the top: all local users on the server. Full control.
Everyone: read, write and execute permissions.
perm_c-temp

Server (please complete the following information):

  • Snipe-IT Version v5.0.12 - build 5705 (master)
  • OS: Windows Server 2016
  • Web Server: IIS
  • PHP Version: php-7.3.11-nts-Win32-VC15-x64

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome
  • Version: 77

Error Messages

  • WITH DEBUG TURNED ON, if you're getting an error in your browser, include that error (also, see above):
[18:44:10] LOG.info: Image path is: assets
[18:44:10] LOG.debug: Type is: asset
[18:44:10] LOG.debug: Form fieldname is: image
[18:44:10] LOG.debug: DB fieldname is: image
[18:44:10] LOG.debug: Trying to upload to assets
[18:44:10] LOG.debug: array ( 'image' => Illuminate\Http\UploadedFile::__set_state(array( ...
[18:44:10] LOG.info: File name will be: asset-image-S4i9kPi5ql.jpg
[18:44:10] LOG.debug: File extension is: jpg
[18:44:10] LOG.debug: Not an SVG or webp - resize
[18:44:10] LOG.debug: Trying to upload to: assets/asset-image-S4i9kPi5ql.jpg
[18:44:10] LOG.error: Intervention\Image\Exception\NotReadableException: Image source not readable i...
[18:44:10] LOG.error: Image source not readable {"userId":8,"exception":{}}
  • Confirm whether the error is reproducible on the demo: No, it's not.

Additional context

  • Is this a fresh install or an upgrade? fresh
  • What method you used to install Snipe-IT (install.sh, manual installation, docker, etc): manual
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant