先在config/filesystems.php文件中增加uploads
disk驱动
例:'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('上传失败');
}
}
}