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

2022-09-08 19:21:24 浏览数 (1)

Request 对象简单使用

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

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

什么时候使用?

1.当成post使用

如程序中 $model->title = $_POST[‘title’]

可改写为 $model->title = $rep->title

dd()方法 = dump() exit

Request的input()方法:字段自动注入,其值不是从form表单提交

代码语言:javascript复制
$model->stu = $rep->input('0');//表单提交自动给stu赋予0

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

使用laravel文件存储系统做文件上传 2.1配置 文件系统配置文件config/filesystem.php 在disks设置相关驱动

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

代码语言:javascript复制
 FILESYSTEM_DRIVER='磁盘名'

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

为了正常访问文件,需建立public/storage 到storage/app/public的链接

创建public/storage到storage/app/public的连接

cmd 输入 php artisan storage:link;

4.上传方法

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

使用Storage类做文件上传

代码语言:javascript复制
//$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对象

0 人点赞