为什么laravel \ Storage :: store方法会导致此错误?

问题描述 投票:0回答:1

在我的本地环境中为什么我会关注它,它的工作原理。

    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';
        }

但是当我在运行相同的代码时运行在Digital Ocean Droplet上的apache时,我得到以下错误。

[2019-02-26 11:45:48] local.ERROR: The file "" does not exist {"userId":3,"email":"[email protected]","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)(内置:2019年2月8日14:54:22)(NTS)

此外,我在storage文件夹及其所有后代上设置了777权限。

更新:

这似乎是我上传的文件大小的问题。

它不能超过2MB,但适用于~6kb文件。

php laravel laravel-5 laravel-5.2 laravel-5.1
1个回答
0
投票

所以首先我要检查表单是否正在使用

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

如果您使用的是Laravel Forge,请确保将文件限制设置为可接受的值,这可以在“服务器详细信息 - > PHP”下更改

enter image description here

您还可以在请求中使用dd进行检查,并检查您在服务器端接收的内容

© www.soinside.com 2019 - 2024. All rights reserved.