上传文件
创建可访问的地址
# 会在public下面创建一个连接文件夹
php artisan storage:link
上传文件第一种
public function upload(Request $request){
if ($request->isMethod('POST')) { //判断是否是POST上传,应该不会有人用get吧,恩,不会的
//在源生的php代码中是使用$_FILE来查看上传文件的属性
//但是在laravel里面有更好的封装好的方法,就是下面这个
//显示的属性更多
$fileCharater = $request->file('source');
if ($fileCharater->isValid()) { //括号里面的是必须加的哦
//如果括号里面的不加上的话,下面的方法也无法调用的
//获取文件的扩展名
$ext = $fileCharater->getClientOriginalExtension();
//获取文件的绝对路径
$path = $fileCharater->getRealPath();
//定义文件名
$filename = date('Y-m-d-h-i-s').'.'.$ext;
//存储文件。disk里面的public。总的来说,就是调用disk模块里的public配置
Storage::disk('public')->put($filename, file_get_contents($path));
}
}
return view('upload');
}
第二种
if($request -> hasFile('avatar') && $request -> file('avatar') -> isValid()){
//文件扩展名
$file['ext'] = $request -> avatar -> extension();
//文件的路径
$file['path'] = $request -> avatar -> path();
//文件mime
$file['mine'] = $request -> avatar -> getMimeType();
//原始文件名
$file['originName'] = $request -> avatar -> getClientOriginalName();
//文件尺寸
$file['size'] = $request -> avatar -> getClientSize();
$file['uploadName'] = sha1($file['originName'].time().rand(1000, 9999)). '.'. $file['ext'];
$request -> avatar -> move('./uploads/', $file['uploadName']);
//获取所有数据
$data = $request -> all();
$data['avatar'] = './upload/'.$file['uploadName'];
$res = MemberModel::create($data);
dd($res);
}else {
$message = $request -> avatar -> getErrorMessage();
dd($message);
}
```
storage 有个方法叫 url(),返回前端可访问的路径是 Storage::url($path),还有一个前提条件就是需要将你 storage 下的目录 agency 软连接到 public 下,框架自带的一个命令是 php artisan storage:link,但是这个命令映射的是 storage 下的 public 目录,所以建议你这样保存:$path = $request->file('tax_registration')->store('public/agency');,视图:
``
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)