Laravel 5.4从错误的路径中取出图像

时间:2017-06-09 14:51:37

标签: php image path filesystems laravel-5.4

我有一个表单,可以将数据(包括图像)上传到我的数据库,并从视图中访问该数据。问题是laravel从错误的路径获取数据。无论如何,这就是为什么 - 存储在数据库中的路径读作; 的 function Get-ChildItemToDepth { param( [String]$Path = $PWD, [String]$Filter = "*_S", [Byte]$ToDepth = 2, [Byte]$CurrentDepth = 0, [Switch]$DebugMode ) $CurrentDepth++ if ($DebugMode) { $DebugPreference = "Continue" } Get-ChildItem $Path | ForEach-Object {$_ | Where-Object { ($_.Attributes -match "Directory") -and ($_.Name -like $Filter) } | Select-Object -ExpandProperty FullName #Write-Host $CurrentDepth if ($_.PsIsContainer) { if ($CurrentDepth -le $ToDepth) { # Callback to this function Get-ChildItemToDepth -Path $_.FullName -Filter $Filter -ToDepth $ToDepth -CurrentDepth $CurrentDepth } else { Write-Host $("Skipping GCI for Folder: $($_.FullName) " + "(Why: Current depth $CurrentDepth vs limit depth $ToDepth)") } } } }

当然,因为它应该是无法访问的; 的 http://localhost/var/www/html/theproject/public/img/uploads/img.jpg

这是我用来将位置路径设置为'img / uploads'的控制器代码;

http://localhost/theproject/public/img/uploads/img.jpg

通过像这样的视图访问

$location = public_path('img/uploads');
$mydata->img1920 = $request->file('img1920')->move($location);
$mydata->save();

那么为什么laravel在路径中包含 / var / www / html

2 个答案:

答案 0 :(得分:0)

您使用public_path()将返回绝对路径,而不是相对于文档根目录或公共路径(您想要的)的路径。

使用move()时,Laravel使用相对于公共路径的给定路径:

所以你可以简单地使用:

$mydata->img1920 = $request->file('img1920')->move('img/uploads', $filename);

但是,$filename要求您调用该文件。

您还可以将store()storeAs()与已配置的文件系统结合使用,该文件系统的工作方式相同。

请参阅:Storing Uploaded Files

答案 1 :(得分:0)

官方文档说关于辅助函数public_path()

  

public_path()

     

public_path函数返回到的完全限定路径   公共目录:

     

$ path = public_path();

public_path返回FULLY限定路径。

而不是public_path()尝试使用url()move()