php - 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}
请帮助我找出我可能忽略的内容。那是我的堆栈以防有人可能需要它。
解决方案
推荐阅读
- c - 从网络服务器 C/C++ 发送的额外字符
- ccxt - 如何调用 ccxt 使用 bitget DEMO 货币 'cmt_btcsusdt'
- amazon-web-services - AWS ec2 实例无法在内部 ssh
- javascript - 如何将空字符串数组转换为空数组?
- android - 如何在TOP制作吐司秀?
- javascript - 网页中的文件查看器
- reactjs - 如何使用 redux obervable 史诗实现 IndexedDB-Then-Network 策略?
- corda - 是否可以在 Corda 交易到达最后阶段之前更改参与方?
- java - 根据groovy中存储的时区将Java日期转换为特定时区
- java - JavaFX 使用自定义对象编辑 TreeView