laravel5 上传视屏功能 本地

<?php

namespace App\Traits\FileUploads;

use Illuminate\Http\Request;

class FileUploadsHelper
{
    public function uploadVideo($file, $folder, $file_prefix, $max_width = false)
    {
        // 构建存储的文件夹规则,值如:uploads/images/video/201709/21/
        // 文件夹切割能让查找效率更高。
        $folder_name = "uploads/$folder/" . date("Y/m/d", time());

        // 文件具体存储的物理路径,`public_path()` 获取的是 `public` 文件夹的物理路径。
        // 值如:/home/vagrant/Code/changan/public/uploads/video/201709/21/
        $upload_path = public_path() . '/' . $folder_name;

        // 获取文件的后缀名,因视屏上传时后缀名为空,所以此处确保后缀一直存在
        $extension = strtolower($file->getClientOriginalExtension()) ?: 'mp4';

        // 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID
        // 值如:1_1493521050_7BVc9v.mp4
        $filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' . $extension;

        // 将视频移动到我们的目标存储路径中
        $file->move($upload_path, $filename);

        return [
            'path' => "/$folder_name/$filename",
            'path_block' => localUrl("/$folder_name/$filename")
        ];
    }
}

请求规则:

<?php

namespace App\Http\Requests\Admin;

use App\Http\Requests\FormRequest;

class VideoRequest extends FormRequest
{
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'video' => 'required|mimes:avi,wmv,mpeg,mp4, mov, mkv, flv, f4v, m4v, rmvb, rm, 3gp, dat, ts, mts, vob',
        ];
    }

}

控制器:

<?php

namespace App\Http\Controllers\Api\Admin;

use App\Http\Controllers\Controller;
use App\Http\Requests\Admin\VideoRequest;
use App\Traits\FileUploads\FileUploadsHelper;

class VideoController extends Controller
{
    /**
     * 上传视频
     * 
     * @param VideoRequest $request
     * @param FileUploadsHelper $handler
     * @return array
     */
    public function store(VideoRequest $request, FileUploadsHelper $handler )
    {
        $result = $handler->uploadVideo($request->video, 'video' ,"video");

        return $result;
    }
}

TP5图片上传(转载)


猜你喜欢

转载自blog.csdn.net/qq_39188306/article/details/80487146
今日推荐