php - $file->move() 函数没有在新文件夹中显示移动的文件?
问题描述
我正在尝试获取用户上传的文件并将其移动到我的 Laravel Public 文件中名为“Images”的文件夹中,我设法让它成功执行且没有错误,我唯一的问题是上传的文件不会显示在 /Images 文件夹中。
我的功能如下:
public function contactPost(Request $request)
{
if($request->hasFile('attachment'))
{
$file = $request->file('attachment');
$file->move('Users/jvb/laravel/public/Images', $file->getClientOriginalName());
echo 'File name '.$file->getClientOriginalName();
echo "<br>";
} else {
return "No";
}
}
Blade.php文件如下:
@extends('layouts.master')
@section('content')
<form method="POST" enctype="multipart/form-data" action="{{ route('contactPost') }}">
@csrf
<div class="form-group">
<input class="form-control" name='name' type="text" placeholder="Name">
</div>
<div class="form-group">
<input class="form-control" name='email' type="email" placeholder="Email">
</div>
<div class="form-group">
<textarea class="form-control" name="message" id="" cols="30" rows="10" placeholder="Message"></textarea>
</div>
<div class="form-group">
<input class="form-control" name="attachment" type="file">
</div>
<div class="form-group">
<button type="submit" class="form-control">Send Message</button>
</div>
</form>
@endsection
我的 laravel 项目中图像文件夹的位置是:
我做错了什么以及如何解决这个问题?
解决方案
使用public_path()
而不是绝对路径
$file->move(public_path()."/Images/", $file->getClientOriginalName());
更新 为了将图像存储到您的数据库中
$user = new User; //model
$filename = $file->getClientOriginalName();
$file->move(public_path("Images"), $filename);
$path = '/Images/' . $filename;
$user->avatar = $path;
$user->save();
推荐阅读
- java - 如何等待线程起点直到方法完成
- javascript - 带有未定义对象名称的 ReferenceError
- ios - Cordova ios angularjs没有找到模板
- azure-cognitive-search - 存在分析器或 tokenFilters 元素时使用 SDK 创建索引时出错
- android - 成功构建另一个应用程序后,缓存会导致 Gradle 同步失败吗?
- postgresql - 没有删除表权限的 Postgresql 角色
- sql-server-2008 - 未使用 BEGIN 或 END TRANSACTION 的存储过程中的事务错误
- angular - 在导航到下一条路线之前获得响应
- git - VS2019 如何在读取文件后应用部分存储
- python - 将数据框更改为唯一列上的字典