Laravel学习记录--request做文件上传

Request 对象简单使用

在创建控制器时,lavarel会自动创建request对象
使用不需要实例化
在方法中的使用

function show(Request $rep){
	 
}
// 将Request 对象的返回值,覆给rep,如方法需要传参,直接在其后添加即可

什么时候使用?
1.当成post使用
如程序中 $model->title = $_POST[‘title’]
可改写为 $model->title = $rep->title
dd()方法 = dump()+exit
Request的input()方法:字段自动注入,其值不是从form表单提交

$model->stu = $rep->input('0');//表单提交自动给stu赋予0

2.文件上传
$rep->file(‘input name名称’)->move(‘路径’,[可选指定图片名,不指定以原图片名存储])
缺点:虽能上传,但访问较复杂
解决办法:使用laravel的文件存储系统

使用laravel文件存储系统做文件上传
2.1配置 文件系统配置文件config/filesystem.php 在disks设置相关驱动
在这里插入图片描述

同时 .env配置文件添加相应磁盘名

 FILESYSTEM_DRIVER='磁盘名'

上传的文件存储在storage/app/public下

为了正常访问文件,需建立public/storage 到storage/app/public的链接
创建public/storage到storage/app/public的连接
cmd 输入 php artisan storage:link;
在这里插入图片描述

4.上传方法

//$rep = Request对象
$path=$rep->file('filename')->store('磁盘名')
//或
$path=$rep->file('filename')->storAs('磁盘名','设置文件名')
    //4.2 获取文件路径 
    return asset('storage/'.$path)

使用Storage类做文件上传

//$rep = Request对象
use Storage;
$path = Storage::putFile('磁盘名',$reg->file('文件名'))

helper辅助函数
array_collapse();将多个数组折合成一个数组
str_limit(str,字节限制);限制字符串长度,多余用省略号代替
str_random(num);随机生成指定长度的字符串包含字母数字

e(html);代码实体转义
app_path();//返回app目录
config_path();//返回config目录
public_path();返回public根目录
base_path();//返回项目目录

url(‘path’);//生成目录 域名加path; 可用于模板之间的跳转
action(控制器@方法);//返回控制器的url

bcrypt(str) 基于框架APP_KEY加密

request();得到当前request对象

发布了17 篇原创文章 · 获赞 0 · 访问量 461

猜你喜欢

转载自blog.csdn.net/weixin_45143481/article/details/103937272