【发布时间】:2020-06-05 20:37:37
【问题描述】:
我知道这应该是世界上最基本的东西,但不知何故我无法让它发挥作用。我有一个具有图像字段的模型类别
这是上传文件的代码
$uploadedFile = $request->file('image');
$fileName = time().$uploadedFile->getClientOriginalName();
$path = $uploadedFile->move(public_path().'/uploads/categories', $fileName);
$category->image = $path;
$category->save();
当我尝试它时,它实际上上传了图像,但没有显示正确的 url 我想在这样的 img 标签中使用 url
<img src="{{$category->image}}" class="img-fluid"/>
当我打印网址时,我会得到这样的结果
"C:\Projects\duars_web\public/uploads/categories\15822290505.png"
这当然不适用于 img 标签...关于为什么会发生这种情况的任何线索?以及如何为我上传的文件获取正确的 url?
【问题讨论】:
-
因为
public_path返回一个文件系统路径。你不需要文件系统路径,你需要一个 URL。您可能正在寻找类似asset()、laravel.com/docs/5.7/helpers#method-asset -
文件上传是可以的,但对于数据库你应该只存储路径。
-
"这当然不会在 img 标签上工作......" 错误。这是图像的路径,它显然可以在
src中工作。 -
@Qumber Rizvi 它可能会起作用......但我不觉得暴露我的文件系统结构是一个好习惯......
标签: php laravel file-upload laravel-6