首页 > 解决方案 > Laravel 无法将图像数据写入路径(http://localhost/recoveries/images/employees/T2150.PNG)

问题描述

尝试上传图片时出现上述错误。

我在stackoverflow上试过这个这个这个这个这个这个这个这个。我尝试更改我将图像保存Image::make($avatar)->resize(300,300)->save(url('/images/drivers/'.$filename));到的位置Image::make($avatar)->resize(300,300)->save(public_path('/images/drivers/'.$filename));,但我得到了同样的错误。我使用 Windows 属性-> 共享-> 权限-> 将图像目录的完全控制权授予“所有人”检查了文件权限。

我开发了运行工匠命令的系统,现在我已经完成了开发,我希望我网络上的用户无需运行任何命令而只需http://localhost/recoveries在他们的浏览器中运行即可访问它。所以我的项目设置如下 在此处输入图像描述:公共文件夹是空的,我正在将我的图像上传到\images\drivers. 这是我的控制器:

if($request->hasFile('avatar')){
        $avatar = $request->file('avatar');
        $filename = $request->input('paynumber') . '.'. $avatar->getClientOriginalExtension();
        Image::make($avatar)->resize(300,300)->save(url('/images/drivers/'.$filename));

        $driver = Driver::create([
            'truck'             => $request->input('truck'),
            'driver_name'       => $request->input('driver_name'),
            'emp_no'         => $request->input('emp_no'),
            'passport_no'       => $request->input('passport_no')
        ]);

        $driver->save();

        return redirect('drivers')->with('success', 'Driver has been added successfully.');

我的 Update 方法具有相同的逻辑。我正在使用 Windows 来托管这个应用程序,在带有 MySQL 数据库的 XAMPP 上运行,运行 Laravel 6。应用程序中的一切工作正常,只是上传图像。

    Can't write image data to path (http://localhost/recoveries/images/drivers/T2150.PNG)C:\xampp\htdocs\recoveries\project\vendor\intervention\image\src\Intervention\Image\Image.php#150Intervention\Image\Exception\NotWritableException

        $saved = @file_put_contents($path, $data);

        if ($saved === false) {
            throw new NotWritableException(
                "Can't write image data to path ({$path})"
            );
        }

#0 C:\xampp\htdocs\recoveries\project\app\Http\Controllers\DriverController.php(103): Intervention\Image\Image->save('http://localhos...')
#1 [internal function]: App\Http\Controllers\DriverController->store(Object(Illuminate\Http\Request))
#2 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Controller.php(54): call_user_func_array(Array, Array)
#3 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('store', Array)
#4 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Route.php(219): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(App\Http\Controllers\DriverController), 'store')
#5 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Route.php(176): Illuminate\Routing\Route->runController()
#6 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Router.php(680): Illuminate\Routing\Route->run()
#7 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#8 C:\xampp\htdocs\recoveries\project\vendor\jeremykenedy\laravel-blocker\src\App\Http\Middleware\LaravelBlocker.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#9 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): jeremykenedy\LaravelBlocker\App\Http\Middleware\LaravelBlocker->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 C:\xampp\htdocs\recoveries\project\vendor\jeremykenedy\laravel2step\src\app\Http\Middleware\Laravel2step.php(23): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#11 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): jeremykenedy\laravel2step\App\Http\Middleware\Laravel2step->handle(Object(Illuminate\Http\Request), Object(Closure))
#12 C:\xampp\htdocs\recoveries\project\vendor\jeremykenedy\laravel-logger\src\app\Http\Middleware\LogActivity.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#13 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): jeremykenedy\LaravelLogger\App\Http\Middleware\LogActivity->handle(Object(Illuminate\Http\Request), Object(Closure))
#14 C:\xampp\htdocs\recoveries\project\app\Http\Middleware\CheckIsUserActivated.php(83): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): App\Http\Middleware\CheckIsUserActivated->handle(Object(Illuminate\Http\Request), Object(Closure))
#16 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#17 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#18 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Auth\Middleware\Authenticate.php(43): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Auth\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php(76): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#24 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#25 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#26 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#27 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#28 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php(66): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#29 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#30 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#31 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Router.php(682): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#32 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Router.php(657): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#33 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Router.php(623): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#34 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Routing\Router.php(612): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#35 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(176): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#36 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#37 C:\xampp\htdocs\recoveries\project\vendor\barryvdh\laravel-debugbar\src\Middleware\InjectDebugbar.php(65): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Barryvdh\Debugbar\Middleware\InjectDebugbar->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 C:\xampp\htdocs\recoveries\project\vendor\fideloper\proxy\src\TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#44 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#45 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#46 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#47 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#49 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#50 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(151): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#51 C:\xampp\htdocs\recoveries\project\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(116): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#52 C:\xampp\htdocs\recoveries\index.php(52): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#53 {main}

请帮助我找出我可能忽略的内容。那是我的堆栈以防有人可能需要它。

标签: phplaravelimageimage-processingpermissions

解决方案


推荐阅读