ErrorException stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory I am getting this error on ubuntu & nginx web server while file uploading.
ErrorException stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory
My environment is:
It happens at
Illuminate\Foundation\Bootstrap\HandleExceptions::handleError
vendor/league/flysystem/src/Adapter/Local.php:159
What is this error? How can I solve?
It seems that this has something to do with parsing files. So I have a few questions to determine what can be wrong here:
Did you update the application from an older version?
Do you have the full stack trace of this error? The error from this is probably thrown before that already
What logging driver do you use?
Did you change anything in your app/Exceptions/Handler.php class?
I'm here with the same question, so I'll reply with my answers. This is actually a Statamic V3 site I am running.
Not sure when I last updated.
Here my stack trace from /storage/logs/laravel.log:
[2020-06-23 18:53:13] production.ERROR: stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory {"userId":"c09ea867-24cf-4dee-854b-ad0a273d3c40","exception":"[object] (ErrorException(code: 0): stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory at /home/forge/www.REDACTEDDOMAIN.com/vendor/league/flysystem/src/Adapter/Local.php:159)
[stacktrace]
#0 [internal function]: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /home/forge/www.REDACTEDDOMAIN.com/vendor/league/flysystem/src/Adapter/Local.php(159): stream_copy_to_stream()
#2 /home/forge/www.REDACTEDDOMAIN.com/vendor/league/flysystem/src/Filesystem.php(122): League\Flysystem\Adapter\Local->writeStream()
#3 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Filesystem/FilesystemAdapter.php(224): League\Flysystem\Filesystem->putStream()
#4 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Filesystem/AbstractAdapter.php(28): Illuminate\Filesystem\FilesystemAdapter->put()
#5 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Assets/Asset.php(562): Statamic\Filesystem\AbstractAdapter->put()
#6 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Http/Controllers/CP/Assets/AssetsController.php(78): Statamic\Assets\Asset->upload()
#7 [internal function]: Statamic\Http\Controllers\CP\Assets\AssetsController->store()
#8 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array()
#9 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()
#10 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\Routing\ControllerDispatcher->dispatch()
#11 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\Routing\Route->runController()
#12 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Route->run()
#13 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#14 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Http/Middleware/CP/Localize.php(16): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#15 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Statamic\Http\Middleware\CP\Localize->handle()
#16 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Http/Middleware/CP/Authorize.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#17 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Statamic\Http\Middleware\CP\Authorize->handle()
#18 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#19 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#20 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#21 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle()
#22 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#23 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#24 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#25 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle()
#26 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#28 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#29 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#30 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Http/Middleware/SwapExceptionHandler.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Statamic\Http\Middleware\SwapExceptionHandler->handle()
#32 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then()
#34 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack()
#35 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute()
#36 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute()
#37 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\Routing\Router->dispatch()
#38 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#39 /home/forge/www.REDACTEDDOMAIN.com/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(19): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#40 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Statamic\Http\Middleware\PoweredByHeader->handle()
#41 /home/forge/www.REDACTEDDOMAIN.com/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(58): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle()
#43 /home/forge/www.REDACTEDDOMAIN.com/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle()
#45 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#46 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#47 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#48 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#49 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#50 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#51 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#52 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()
#53 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#54 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then()
#55 /home/forge/www.REDACTEDDOMAIN.com/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#56 /home/forge/www.REDACTEDDOMAIN.com/public/index.php(55): Illuminate\Foundation\Http\Kernel->handle()
#57 {main}
"}
Is set to stack, but not used.
Not changed anything in that class.
I have tried uploading the file locally ( Windows 10 / PHP 7.4 / Nginx ) and it works.
Therefore it's relevant that the server this is happening on is a Laravel Forge provisioned DO droplet.
I also tried using a new random test image from unsplash and it works on the production server. So there is something about this jpg on this server.
Also, I'd suggest this is better placed in Servers discussion.
I'm having the same issue: locally uploads work fine, but on the server I get the above error:
production.ERROR: stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory {"userId":28,"exception":"[object] (ErrorException(code: 0): stream_copy_to_stream(): read of 8192 bytes failed with errno=21 Is a directory at /var/www/jkaraoke-app/vendor/league/flysystem/src/Adapter/Local.php:159)
I updated my PHP ini to allow bigger uploads already.
I'm having the same issue: locally uploads work fine, but on the server I get the above error: [2]
This is related with PHP settings. Error is not clear on this case.
Increase these variables on your PHP.ini file:
upload_max_filesize
post_max_size
memory_limit
Maybe on your case, you do not need increase all of them.. depends on your filesize, but because they are related, I am showing here for someone that have this issue. At least review the value of these variables.
I increased the upload_max_filesize and it solved the problem for me
Thanks this solved my issue
same problem here, any solution ?
Just max_upload_limit and Max_post_size need set up with bigger mb
I had the same error. Make sure you're targeting a file and not a directory.
example: /uploads/1/ gives an error.
/uploads/1/foo.jpg should work.
check your php.ini in php cli directory too, if you use php artisan serve.
Please sign in or create an account to participate in this conversation.