首页 > 解决方案 > Laravel 5 上传显示未定义变量的 zip 文件:e

问题描述

我创建了一个文件上传方法,并且文件扩展名jpg, png等文件上传成功。但是,当我上传一个 zip 文件时,它会显示我“ Undefined variable: e”。为了找到,我dd()在相应方法的开头做了,但它仍然说上面的错误。我的路线如下:

Route::post('media/savedata/{id?}/{page?}', 'Administrator\MedialibraryController@savedata'); 

方法如下:

public function savedata($id, $page, Request $request) {
 ...
}

“网络”选项卡的内容如下:

Request URL: http://localhost/stmd/administrator/media/savedata/0/1
Request Method: POST
Status Code: 500 Internal Server Error
Remote Address: [::1]:80
Referrer Policy: no-referrer-when-downgrade

------WebKitFormBoundaryaHtERzAAThbQB4ae
Content-Disposition: form-data; name="_token"

TXLvBGRXrdjpQbhAjm18MTxkiHamauvcjhKBhl6n
------WebKitFormBoundaryaHtERzAAThbQB4ae
Content-Disposition: form-data; name="fileType"

I
------WebKitFormBoundaryaHtERzAAThbQB4ae
Content-Disposition: form-data; name="fileName"; filename="gradle-3.5-bin.zip"
Content-Type: application/zip

我的意图是:如果上传 zip 文件,那么它将重定向到另一个页面,但是,我不能这样做,因为即使dd()不工作。

更新:

以下是 Laravel 日志:

[2018-07-23 11:59:51] local.ERROR: Undefined variable: e {"exception":"[object] (ErrorException(code: 0): Undefined variable: e at /var/www/html/stmd/app/Exceptions/Handler.php:76)
[stacktrace]
#0 /var/www/html/stmd/app/Exceptions/Handler.php(76): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'Undefined varia...', '/var/www/html/s...', 76, Array)
#1 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(83): App\\Exceptions\\Handler->render(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Exceptions\\PostTooLargeException))
#2 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(55): Illuminate\\Routing\\Pipeline->handleException(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Exceptions\\PostTooLargeException))
#3 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#4 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#5 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#6 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#7 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#8 /var/www/html/stmd/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#9 /var/www/html/stmd/public/index.php(58): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#10 /var/www/html/stmd/index.php(4): include('/var/www/html/s...')
#11 {main}
"} 

我的 Handler.php 内容如下:

public function render($request, Exception $exception)
    {
        if($this->isHttpException($exception)){
            $logFile = 'laravel.log';

            Log::useDailyFiles(storage_path().'/logs/'.$logFile);
            //echo Route::getCurrentRoute()->getAction();



            //echo $exception->getStatusCode();exit;
            switch ($exception->getStatusCode()) {

                case 404:
                    Log::info('Unable to find page.');
                    return response()->view('errors.404',[],404);

                    break;

                case 500:

                    Log::error('In Server is really going wrong.');
                    return response()->view('errors.500',[],500);

                    break;
                 default:
                    return $this->renderHttpException($e);
                break;

            }

        }
        return parent::render($request, $exception);
    }
}

标签: laravellaravel-5

解决方案


改变

return $this->renderHttpException($e);

return $this->renderHttpException($exception);

app/Exceptions/Handler.php


推荐阅读