sbyaute / symfony-dropzone

symfony 表单类型

安装: 719

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

语言:Twig

类型:symfony-bundle

1.0.0 2022-10-27 08:01 UTC

This package is not auto-updated.

Last update: 2024-09-26 23:33:30 UTC


README

扩展 SymfonyForm 组件。添加新的表单类型 DropzoneType。

安装

composer require sbyaute/symfony-dropzone

资源

将 dropzone 库添加到项目的模板中

{% block stylesheets %}
    {{ parent() }}
    <link rel="stylesheet" href="{{ asset('assets/dropzone/style/dropzone.css') }}">
    <style>
        .dropzone {
        min-height:25px;
        padding:5px 5px 5px
    }
        .dz-button {
        width:270px;
    }
    </style>
{% endblock %}

{% block javascripts %}
    {{ parent() }}
    <script src="{{ asset('assets/dropzone/js/dropzone-min.js') }}"></script>
{% endblock %}```

## Usage
```php
public function buildForm(\Symfony\Component\Form\FormBuilderInterface $builder, array $options)
{ 

    // fichiers is OneToMany
    $builder->add('fichiers', DropzoneType::class, [
        'class' => Fichier::class,
        'maxFilesize' => 8,  // Taille max du fichier en MB
        'maxFiles' => 6,        // Nb max de fichiers téléchargeables
        'uploadHandler' => 'uploadHandler', // route pour le chargement
        'removeHandler' => 'removeHandler', // route pour la suppression
        'downloadHandler' => 'downloadHandler', // route pour le téléchargement
        'previewsContainer' => true,        // Si true, sort la previsu de la dropzone (pas d'image)
        'choice_src' => 'src',              // Champ de l'entité contenant le nom du fichier sur le serveur
        'acceptedFiles' => '',        // Liste des types de fichiers autorisés ('.zip, .doc, .xls')
        'dictDefaultMessage' => 'Cliquez ou glissez/déposez vos fichiers ici ...',
        'dictRemoveFileConfirmation' => 'Etes-vous sûr ?', // active la confirmation de suppression
        'required' => false,
    ]);
}

上传处理程序/移除处理程序路由示例

/**
     * @Route("/uploadhandler", name="uploadHandler")
     */
    public function uploadhandler(Request $request, ImageUploader $uploader) { 
        $doc = $uploader->upload($request->files->get('file'));  
        $file = new File(); 
        $file->setSrc($doc['src']);
        ...

        $this->getDoctrine()->getManager()->persist($file);
        $this->getDoctrine()->getManager()->flush();
        return new JsonResponse($file);
    }


    /**
     * @Route("/removeHandler/{id}", name="removeHandler")
     */
    public function removeHandler(Request $request,File $file = null) {
        $this->getDoctrine()->getManager()->remove($file);
        $this->getDoctrine()->getManager()->flush();
        return new JsonResponse(true);
    }

选项

许可协议:MIT