laravel实现文件上传,Storage::disk

先在config/filesystems.php文件中增加uploadsdisk驱动

例:'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        // 新建一个本地端uploads空间(目录) 用于存储上传的文件
        'uploads' => [

            'driver' => 'local',

            // 文件将上传到public/img 浏览器直接访问 请设置成这个
            'root' => public_path('img'),
        ],

控制器逻辑处理

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Illuminate\Support\Facades\Storage;

class UserBasicController extends Controller
{
    public function demo(Request $request)
	{
		$data = $request->all();
		//获取上传文件信息
		$file = $request->file('file');

		//获取文件后缀
		$ext = $file->getClientOriginalExtension();

		//获取文件临时位置位置
		$path = $file->getRealPath();

		//生成新文件名称   //生成格式:时间戳+随机数+后缀名称
		$newfilename = date("Ymd")."/".$request->book_name.mt_rand(100,999).'.'.$ext;
		
        // 更新当前文件名称  //格式:域名+filesystems.php设置的文件位置+新文件名称
		$data['file'] = $_SERVER['HTTP_HOST'].'/img/'.$newfilename;
		
        //文件上传
		$re =  Storage::disk('uploads')->put($newfilename, file_get_contents($path));

		if ($re) {
			dd($data);
		}else{
			dd('上传失败');
		}
	}
}

 

上一篇:Linux DRBD 主节点(Primary) 故障恢复测试


下一篇:SQL2005完整+差异+日志备份还原策略