laravel 5 ->getRealPath() 没有显示正确的值
laravel 5 ->getRealPath() doenst show correct value
在我的本地开发中,我使用了下面显示的代码,它运行完美,
但是当我将网站上传到我的共享主机时,除了我的文件上传外,一切都运行良好。我已经确定问题涉及
->getRealPath()
,当我 dd();
得到这条路径时:
/data/sites/web/christophvhbe/tmp
我的主机上不存在。但是我找到了临时图像存储在我的主机上的位置,它位于此处的 tmp/
:http://gyazo.com/e0199718324119109a4ff66321414e12.
如何将 ->getRealPath()
值更改为正确的值?
$fileName = time() . '-' . $request->file('foto')->getClientOriginalName();
$product->foto = $fileName;
$product->save();
$imagePath = '/images/producten/'. $fileName;
$image = Image::make($request->file('foto')->getRealPath())->fit(300)->save($imagePath);
我正在使用 Image/intervention
包来上传和存储图像。
很可能您帐户的根是 /data/sites/web/christophvhbe
,并且 getRealPath
是完全准确的(您在 FTP 中看到的很可能是 chrooted)。结果,你的$imagePath
实际上是问题所在。
$imagePath = '/data/sites/web/christophvhbe/images/producten/'. $fileName;
或者,更好的是,使用 Laravel 的 base_path
and/or public_path
助手,这样如果您更改主机,它会在路径更改时继续工作:
$imagePath = public_path() . '/images/producten/' . $fileName;
如果您查阅错误日志,我敢打赌您会发现尝试在服务器的 /images
目录中创建文件时出现权限错误,而在共享主机上您肯定无法创建或访问该文件.
就用这个
$_SERVER['DOCUMENT_ROOT']."/path/to/directory"
在我的本地开发中,我使用了下面显示的代码,它运行完美,
但是当我将网站上传到我的共享主机时,除了我的文件上传外,一切都运行良好。我已经确定问题涉及
->getRealPath()
,当我 dd();
得到这条路径时:
/data/sites/web/christophvhbe/tmp
我的主机上不存在。但是我找到了临时图像存储在我的主机上的位置,它位于此处的 tmp/
:http://gyazo.com/e0199718324119109a4ff66321414e12.
如何将 ->getRealPath()
值更改为正确的值?
$fileName = time() . '-' . $request->file('foto')->getClientOriginalName();
$product->foto = $fileName;
$product->save();
$imagePath = '/images/producten/'. $fileName;
$image = Image::make($request->file('foto')->getRealPath())->fit(300)->save($imagePath);
我正在使用 Image/intervention
包来上传和存储图像。
很可能您帐户的根是 /data/sites/web/christophvhbe
,并且 getRealPath
是完全准确的(您在 FTP 中看到的很可能是 chrooted)。结果,你的$imagePath
实际上是问题所在。
$imagePath = '/data/sites/web/christophvhbe/images/producten/'. $fileName;
或者,更好的是,使用 Laravel 的 base_path
and/or public_path
助手,这样如果您更改主机,它会在路径更改时继续工作:
$imagePath = public_path() . '/images/producten/' . $fileName;
如果您查阅错误日志,我敢打赌您会发现尝试在服务器的 /images
目录中创建文件时出现权限错误,而在共享主机上您肯定无法创建或访问该文件.
就用这个
$_SERVER['DOCUMENT_ROOT']."/path/to/directory"