龙空技术网

TP6框架上传图片

红叶Shane 113

前言:

目前大家对“tp6 url路径”大约比较看重,小伙伴们都想要分析一些“tp6 url路径”的相关知识。那么小编同时在网上网罗了一些对于“tp6 url路径””的相关文章,希望我们能喜欢,我们快快来学习一下吧!

仅作为Shane个人笔记以下代码中出现的show方法均为Shane写的用来返回统一数据的接口方法接收文件

/** * 接收文件 */$file = request() -> file('file');
接收到文件后判断下收来的文件是否为null
/** * 判断接收文件是否为空 */if ($file == null) {	return $this -> show(		config("status.failed"),    config("message.failed"),    '未上传图片'	);}
截取上传文件名后缀
/** * 截取上传文件名后缀 * 将文件名以.分割为数组 * 用PHP end函数取数组最后一个 * 即可得到上传文件后缀 */$temp = explode(".", $_FILES["file"]["name"]);$extension = end($temp);
判断上传文件是否合法(是否为图片文件)
/** * 判断上传文件是否合法 * 判断截取上传文件名是否为 * jpeg,jpg,png其中之一 */if(!in_array($extension, array("jpeg","jpg","png"))){	return $this -> show(    	config("status.failed"),      config("message.failed"),      '上传图片不合法'  );}
配置保存路径

用Filesystem将接收的文件移动至想放的路径

配置出一个常使用的路径出来比较好

找到config目录下的filesystem.php文件进行配置

'photo' => [	// 磁盘类型    'type'       => 'local',    // 磁盘路径    'root'       => app()->getRootPath() . 'public/uploads',    // 磁盘路径对应的外部URL路径    'url'        => '/uploads',    // 可见性    'visibility' => 'public',],

这里Shane配置的路径为public下的uploads文件夹

配置完后来看下filesystem.php整体是个什么样子

<?phpuse think\facade\Env;return [    // 默认磁盘    'default' => Env::get('filesystem.driver', 'local'),    // 磁盘列表    'disks'   => [        'local'  => [            'type' => 'local',            'root' => app()->getRuntimePath() . 'storage',        ],        'public' => [            // 磁盘类型            'type'       => 'local',            // 磁盘路径            'root'       => app()->getRootPath() . 'public/storage',            // 磁盘路径对应的外部URL路径            'url'        => '/storage',            // 可见性            'visibility' => 'public',        ],        'photo' => [            // 磁盘类型            'type'       => 'local',            // 磁盘路径            'root'       => app()->getRootPath() . 'public/uploads',            // 磁盘路径对应的外部URL路径            'url'        => '/uploads',            // 可见性            'visibility' => 'public',        ],    ],];
使用Filesystem把上传的文件移动到指定位置
/** * 调用disk方法 * 此时根目录为/public/uploads * 再把文件移动至uploads下的photo文件夹里 * 文件名用md5 */$saveName = Filesystem::disk('photo') -> putFile('photo', $file, 'md5');

上述代码执行完毕之后会返回文件名

所以用一个变量($saveName)来接收文件名

给前端返回图片路径

/** * Shane这里只返回从uploads开始的路径 * 可以根据自己的需求返回需要的路径 */exit(str_replace('\\', '', '/uploads/' . $saveName));
至此上传图片完毕

再来看下整体代码

/** * 上传图片 */ public function uploads_file(){ 	$file = request() -> file('file');    if ($file == null) {    	return $this -> show(        	config("status.failed"),            config("message.failed"),            '未上传图片'        );    }    $temp = explode(".", $_FILES["file"]["name"]);    $extension = end($temp);    if(!in_array($extension, array("jpeg","jpg","png"))){    	return $this -> show(        	config("status.failed"),            config("message.failed"),            '上传图片不合法'        );   	}    $saveName = Filesystem::disk('photo') -> putFile('photo', $file, 'md5');    exit(str_replace('\\', '', '/uploads/' . $saveName)); }
Shane在B站的TP6视频:BV1tJ411J7qZ

标签: #tp6 url路径