将文件上传到前端

问题描述 投票:0回答:1

我使用用户插件。我使用了迁移

    public function up()
    {
        Schema::table('users', function($table)
        {

            $table->text('sex')->nullable();
            $table->date('birthday')->nullable();
            $table->string('doc_photo')->nullable();
        });
    }

使字段在管理面板和前端用户帐户中都可编辑

        UserModel::extend(function($model){
            $model->addFillable([
                'sex',
                'birthday',
                'doc_photo'
            ]);
        });

        UsersController::extendFormFields(function($form, $model, $context){
            $form->addTabFields([
                'sex' => [
                    'label' => 'Sex',
                    'type' => 'text',
                    'tab' => 'Personal info'
                ],              
                'birthday' => [
                    'label' => 'Birthday',
                    'type' => 'text',
                    'tab' => 'Personal info'
                ]
                'doc_photo' => [
                    'label' => 'Photo',
                    'type' => 'text',
                    'tab' => 'Documents'
                ]
            ]);
        });

如何使用将文件上传到服务器。例如,头像

octobercms
1个回答
0
投票

这是我为后端做的方法:

从数据库表中删除doc_photo

public function up()
{
    Schema::table('users', function($table)
    {

        $table->text('sex')->nullable();
        $table->date('birthday')->nullable();
    });
}

Plugin.php-将doc_photo添加为附件而不是字段,并作为后端控制器中的文件上传小部件

    UserModel::extend(function($model){
        $model->addFillable([
            'sex',
            'birthday'
        ]);
        $model->attachOne['doc_photo'] = 'System\Models\File';
    });

    UsersController::extendFormFields(function($form, $model, $context){
        $form->addTabFields([
            'sex' => [
                'label' => 'Sex',
                'type' => 'text',
                'tab' => 'Personal info'
            ],              
            'birthday' => [
                'label' => 'Birthday',
                'type' => 'text',
                'tab' => 'Personal info'
            ],
            'doc_photo' => [
                'label' => 'Photo',
                'type' => 'fileupload',
                'mode' => file,
                'thumbOptions' => [
                    'mode' => 'crop',
                    'extension' => 'auto'
                ],
                'useCaption' => true,
                'tab' => 'Documents'
            ]
        ]);
    });

这是为前端:

使组件具有onUpload()功能并加载Auth Facade:

public function onUpload() {
    $user = Auth::getUser();
    $user->doc_photo = Input::file("doc_photo");
    $user->save();

    return Redirect::refresh();
}

要在default.htm部分中找到的HTML / Twig代码:

{{ form_open({files: true, request: 'onUpload'}) }} 
    <!--File Input--> 
    <input type="file" name="doc_photo"  required="required" class=""> 
    <!--File Input--> 
    <!--Submit/Upload Button--> 
    <button type="submit" class="">Upload</button> 
 {{ form_close() }}
© www.soinside.com 2019 - 2024. All rights reserved.