OtaController.php 3.92 KB
<?php

namespace App\Http\Controllers\Backend\OTA;

use App\Http\Requests\Backend\Ota\Backend\CreateOtaVersionRequest;
use App\Http\Requests\Backend\Ota\Backend\ManageOtaVersionRequest;
use App\Modules\Models\Ota\OtaVersion;
use App\Repositories\Backend\Ota\OtaVersionRepository;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Storage;

class OtaController extends Controller
{
    /**
     * @var OtaVersionRepository
     */
    protected $otaVersions;

    /**
     * OtaController constructor.
     * @param OtaVersionRepository $otaVersions
     */
    public function __construct(OtaVersionRepository $otaVersions)
    {
        $this->otaVersions = $otaVersions;
    }

    /**
     * Display a listing of the resource.
     * @param ManageOtaVersionRequest $request
     *
     * @return \Illuminate\Http\Response
     */
    public function index(ManageOtaVersionRequest $request)
    {
        //
        return view('backend.ota.index');
    }

    /**
     * Show the form for creating a new resource.
     * @param ManageOtaVersionRequest $request
     *
     * @return \Illuminate\Http\Response
     */
    public function create(ManageOtaVersionRequest $request)
    {
        //
        return view('backend.ota.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  CreateOtaVersionRequest  $request
     * @return \Illuminate\Http\Response
     */
    public function store(CreateOtaVersionRequest $request)
    {
        //
        $file = $request->file('package');
        $version_code = $request->get('version_code');
        $update_info = $request->get('update_info');

        $bool = false;
        $filename = '';
        // 文件是否上传成功
        if ($file->isValid()) {

            // 获取文件相关信息
            $originalName = $file->getClientOriginalName(); // 文件原名
            $ext = $file->getClientOriginalExtension();     // 扩展名
            $realPath = $file->getRealPath();   //临时文件的绝对路径
            $type = $file->getClientMimeType();     // image/jpeg

            // 上传文件
            $filename = 'YOUKAC-'.$version_code.'.'.$ext;
            // 使用我们新建的uploads本地存储空间(目录)
            $bool = Storage::disk('ota')->put($filename, file_get_contents($realPath));
        }

        if ($bool) {
            $input = $request->all();
            $input['filename'] = $filename;
            $this->otaVersions->create($input);

            Storage::disk('ota')->put('.env', 'LATEST_VERSION='.$version_code."\nFILENAME=".$filename);

            return redirect()->route('admin.ota.index')->withFlashSuccess(trans('alerts.backend.ota.created'));
        }
        else {
            return redirect()->back()->withInput()->withFlashDanger(trans('alerts.backend.ota.file_upload_error'));
        }
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  OtaVersion $ota
     * @param ManageOtaVersionRequest $request
     * @return \Illuminate\Http\Response
     */
    public function destroy(OtaVersion $ota, ManageOtaVersionRequest $request)
    {
        //
        $this->otaVersions->delete($ota);

        return redirect()->route('admin.ota.index')->withFlashSuccess(trans('alerts.backend.ota.deleted'));
    }
}