Laravel - 上手实现 - 文件上传、保存到 public 目录下
1、为了访问方便,将上传的文件保存在 public 目录下,需要进行修改配置。
找到 config/filesystems.php 文件然后修改 root、具体如下:
'local' => [
'driver' => 'local',
// 'root' => storage_path('app'),
'root' => public_path()
],
'public' => [
'driver' => 'local',
// 'root' => storage_path('app/public'),
'root' => public_path(),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
2、配置路由,指定上传页面;
// 上传页面
Route::get('/upl', function(){
return view('Users.upload');
});
3、创建并编辑上传页面;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>上传</title>
</head>
<body>
<form action="uplDo" method="post" enctype="multipart/form-data">
<!-- 文件上传使用 post 提交方式、需要加 csrf 保护-->
@csrf
文件上传:
<input type="file" name="file" id="">
<input type="submit" value="提交">
</form>
</body>
</html>
4、配置路由绑定控制器和方法,用于执行上传操作;
// 执行上传
Route::post('/uplDo', 'UsersController@uplDo');
5、在控制器接收数据,获取上传的文件信息;
/**
* 文件上传
*/
public function uplDo( Request $request )
{
// 获取上传的文件
$file = $request->file('file');
// 获得上传文件的原始名称 getClientOriginalName
// 040106.jpg
echo $file->getClientOriginalName();
// 获取上传文件的文件扩展名 extension
// jpg
echo $extension = $file->extension();
// 获取上传文件的大小
// 29514
echo $file->getSize();
// 检测上传的文件是否合法,返回值为true或false
// 1
echo $file->isValid();
// 获取上传后保存的路径
// php/NKtwzdR5l1zkeqKzc8YK36HpaB6TSdkRvBoyjlhq.jpeg
echo $file->store('php');
// 最终的保存路径是在 ../Laravel7/public/php/NKtwzdR5l1zkeqKzc8YK36HpaB6TSdkRvBoyjlhq.jpeg
}
Laravel - 上手实现 - 文件上传、保存到 public 目录下的更多相关文章
- springboot升级导致文件上传自动配置/tmp目录问题解决
1,..\web\src\main\resources\spring\web-men-applicationContext.xml 保留原有的bean配置 <bean id="mult ...
- php laravel 帧 该文件上传
好,我承认我的忠告. 今天laravel框架编写一个文件上传部分.总能找到不正确的路径.但是,终于攻克. 以下我分享一下自己的学习体会吧. client <form method="P ...
- Laravel 5 教程 - 文件上传
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
- Laravel请求/Cookies/文件上传
一.HTTP请求 1.基本示例:通过依赖注入获取当前 HTTP 请求实例,应该在控制器的构造函数或方法中对Illuminate\Http\Request 类进行类型提示,当前请求实例会被服务容器自动注 ...
- laravel中的文件上传到本地+七牛云上传
首先在filesystems.php 配置好上传的文件的目录起名为upload 在Storage/目录下面 目录下面的app/upload 如果没有这个文件会自动创建 这里的名字upload名字是跟控 ...
- 代码审计之XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...
- [代码审计]XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)
0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...
- Upload-labs 文件上传靶场通关攻略(下)
Upload-Labs靶场攻略(下) Pass-11 GET型传参,上传目录可设置,考虑00截断,在/upload/后添加1.php%00,即可上传 Pass-12 POST型传参,上传目录可设置,P ...
- laravel oauth2.0 文件上传报错
报错信息: "message": "Invalid stream or file provided for UploadedFile", " ...
随机推荐
- Redis学习笔记1-java 使用Redis(jedis)
一.远程操作Redis 1. 在windows环境下安装RedisDesktopManager 2. 打开RedisDesktopManager 3. Add New Connection 4. 右击 ...
- JavaScript语法记要
JavaScript语法记要 1.JS代码忽略缩进和换行 2.JS六种数据类型 String // 字符串 Number // 数值 Boolean // 布尔值 null // 空值 undefin ...
- coding++: java把一个整数拆分为单个值
方式一: int num = 100; int[] ary = new int[(num+"").length()]; for(int i = ary.length-1;i> ...
- 人生靠反省,Java靠泛型
昨天有同事问 UserService.XxxService 都会调用 Dao 的 insert.update ... ...,这些重复的代码,有没有办法变得灵活一些? 巧了,和咱们分享的主题刚好碰上, ...
- JMeter中聚合报告的各项参数详解
下面我们来共同学习这些参数的作用: 1.Lable:Label:每个 JMeter 的 element(例如 HTTP Request)都有一个 Name 属性,这里显示的就是 Name 属性的值: ...
- Gang Of Four的23中设计模式
Gang Of Four的23中设计模式 标签(空格分隔): 设计模式 1. 根据目的来进行划分 根据目的进行划分可以分为创建型模式, 结构型模式和行为模式三种. 1.1 创建型模式 怎样创建对象, ...
- 《Three.js 入门指南》2- 照相机
2.1 什么是照相机 我们使用Three.js创建的场景是三维的,而通常情况下显示屏是二维的,那么三维的场景如何显示到二维的显示屏上呢?照相机就是这样一个抽象,它定义了三维空间到二维屏幕的投影方式,用 ...
- Hibernate实现limit语句效果
Hibernate hibernate实现limit效果 由于hql语句内无法直接书写limit语法,所以需要通过别的方式来达成这个效果 limit效果一般需要有两个参数:开始位置start和查询数量 ...
- Redis 笔记(一)——数据类型简介
Redis 是一个 key-value 存储系统,但是它的 value 值不仅仅可以存储字符串,value 共有 五种 数据结构类型,具体如下: 数据结构类型 结构类型 结构存储的值 结构的读写能力 ...
- 【高并发】什么是ForkJoin?看这一篇就够了!
写在前面 在JDK中,提供了这样一种功能:它能够将复杂的逻辑拆分成一个个简单的逻辑来并行执行,待每个并行执行的逻辑执行完成后,再将各个结果进行汇总,得出最终的结果数据.有点像Hadoop中的MapRe ...