Почему метод laravel \ Storage :: store вызывает эту ошибку? - PullRequest
0 голосов
/ 26 февраля 2019

В моем локальном окружении, почему я делаю следующее, это работает.

    if( $request->file ){

        $path = $request->file('file')->store('public/chat/files');

        $mime_type = $request->file('file')->getMimeType(); 


        if( strstr( $mime_type, 'video' ) ){
            $data['message_type'] = 'video';
        }else if( strstr( $mime_type, 'image' ) ){
            $data['message_type'] = 'image';
        }else if( strstr( $mime_type, 'audio' ) ){
            $data['message_type'] = 'audio';
        }

Но на apache, работающем на дроплете Digital Ocean, когда я запускаю тот же код, я получаю следующую ошибку.

[2019-02-26 11:45:48] local.ERROR: The file "" does not exist {"userId":3,"email":"user@user.com","exception":"[object] (Symfony\\Component\\HttpFoundation\\File\\Exception\\FileNotFoundException(code: 0): 
The file \"\" does not exist a$
[stacktrace]
#0 /var/www/html/plugin_love_api/vendor/symfony/http-foundation/File/File.php(79): Symfony\\Component\\HttpFoundation\\File\\MimeType\\MimeTypeGuesser->guess('')
#1 /var/www/html/plugin_love_api/vendor/symfony/http-foundation/File/File.php(58): Symfony\\Component\\HttpFoundation\\File\\File->getMimeType()
#2 /var/www/html/plugin_love_api/vendor/laravel/framework/src/Illuminate/Http/FileHelpers.php(60): Symfony\\Component\\HttpFoundation\\File\\File->guessExtension()
#3 /var/www/html/plugin_love_api/vendor/laravel/framework/src/Illuminate/Http/UploadedFile.php(35): Illuminate\\Http\\UploadedFile->hashName()
#4 /var/www/html/plugin_love_api/app/Http/Controllers/ChatController.php(71): Illuminate\\Http\\UploadedFile->store('public/chat/fil...')
#5 [internal function]: App\\Http\\Controllers\\ChatController->sendMessage(Object(Illuminate\\Http\\Request))
#6 /var/www/html/plugin_love_api/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#7 /var/www/html/plugin_love_api/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('sendMessage', Array)
#8 /var/www/html/plugin_love_api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\ChatController), 'se$
#9 /var/www/html/plugin_love_api/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\\Routing\\Route->runController()
#10

Версия PHP: PHP 7.2.15-0ubuntu0.18.04.1 (cli) (сборка: 8 февраля 2019 14:54:22) (NTS)

Также я установил 777 разрешения для папки storage и всех ее потомков.

ОБНОВЛЕНИЕ:

Кажется, это проблема с размером файла, который я загружаю.

он не работает с более чем 2 МБ, но работает с файлом ~ 6 КБ.

1 Ответ

0 голосов
/ 26 февраля 2019

Итак, сначала я бы проверил, что форма использует

<form method="POST" enctype="multipart/form-data">

Если вы используете Laravel Forge, убедитесь, что лимит файлов установлен на приемлемое значение, это можно изменить в разделе «Сведения о сервере -> PHP»."

enter image description here

Вы также можете проверить, используя dd в запросе и проверяя, что вы получаете на стороне сервера

...