我有一个表单,可以将数据(包括图像)上传到我的数据库,并从视图中访问该数据。问题是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 ?
答案 0 :(得分:0)
您使用public_path()
将返回绝对路径,而不是相对于文档根目录或公共路径(您想要的)的路径。
使用move()
时,Laravel使用相对于公共路径的给定路径:
所以你可以简单地使用:
$mydata->img1920 = $request->file('img1920')->move('img/uploads', $filename);
但是,$filename
要求您调用该文件。
您还可以将store()
或storeAs()
与已配置的文件系统结合使用,该文件系统的工作方式相同。
答案 1 :(得分:0)
官方文档说关于辅助函数public_path()
public_path()
public_path函数返回到的完全限定路径 公共目录:
$ path = public_path();
public_path
返回FULLY限定路径。
而不是public_path()
尝试使用url()
或move()