tamaledns/base64-to-file-lara

将 base64 字符串转换为 Laravel 的文件

dev-main 2024-05-20 07:51 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:02:47 UTC


README

将 base64 字符串转换为 Laravel 的上传文件

要求

php >= 8.0

安装

composer require tamaledns/base64-to-file-lara

示例

创建文件

  • 创建 Base64ToFile 类的实例
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
    }
}
  • 创建实例后,您将能够访问文件中的数据,并将其保存到项目的存储中。

获取文件信息

获取文件名

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
        $filename = $Base->getFilename(); // example: return 'f485fd45-640c-4eac-ae13-b97088b089f5'
    }
}

注意: 返回由 Laravel 的 Illuminate\Support\Str::class 创建的随机字母数字名称,每次实例化类时都是唯一的

获取文件扩展名

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
        $ext = $Base->getExtension(); // example: return 'png'
    }
}

获取文件类型

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
        $filetype = $Base->getFileType(); // example: return 'image/jpeg'
    }
}

获取完整路径

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
        $fullpath = $Base->getFullPath(); // example: return 'f485fd45-640c-4eac-ae13-b97088b089f5.jpg'
    }
}

获取要保存的文件

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
        $file = $Base->file();
        $fullpath = $Base->getFullPath();
        $file->storeAs('assets/files/', $fullpath);
    }
}

以数组形式获取所有文件信息

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use tamaledns\Base64ToFile\Base64ToFile;

class FileController extends Controller
{
    public function save_base64 (Request $request) {
        $Base = new Base64ToFile($request->base64file);
        /**
        * This function return a array
        * return [
        *   'file'      => Illuminate\Support\Str::class,
        *   'extension' => 'png',
        *   'filename'  => 'f485fd45-640c-4eac-ae13-b97088b089f5,
        *   'full_path' => 'f485fd45-640c-4eac-ae13-b97088b089f5.jpg',
        *   'file_type' => 'image/jpeg'
        * ]
        **/
        $info = $Base->getAllinfo();
        // Save File nto Storage
        $info['file']->storeAs('assets/files/', $info['full_path']);
    }
}

许可证

本软件包采用 MIT 许可证的条款授权