Enhanced file type for Symfony forms
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Tests/DependencyInjection
src
.gitignore
.travis.yml
LICENSE
README.md
composer.json
phpunit.xml.dist

README.md

VRiaEnhancedFileBundle

Build Status

File type for Symfony forms with additional functionality:

  • if file has been previously uploaded, the download link is rendered
  • previously uploaded file can be deleted if new one is uploaded

Check out this blogpost to know the details of implementation.

##Installation

Using Composer, run:

composer require vria/enhanced-file

Add the VRiaNoDiacriticBundle to your application kernel:

// app/AppKernel.php
public function registerBundles()
{
    return array(
        // ...
        new VRia\Bundle\EnhancedFileBundle\VRiaEnhancedFileBundle(),
    );
}

##Use

In Symfony 3 you should use:

$form = $this->createFormBuilder()
    ->add('file', EnhancedFileType::class, $options)
    ...

While in Symfony ~2.3:

$form = $this->createFormBuilder()
    ->add('file', 'enhanced_file', $options)
    ...

$options is an array of options form FormType Field enlarged with:

  • directory_path - physycal directory to put files. E.g. $this->get('kernel')->getRootDir() . '/../web/upload/'. Required
  • public_directory_path - path from your public directory (often /web) to directory with files. E.g. '/upload/'. Required
  • delete_previous_file - whether to delete previously uploaded file. Default value is true

So, the complete definition could be:

$form = $this->createFormBuilder()
    ->add('file', EnhancedFileType::class, array(
        'label' => 'Curriculum vitae',
        'directory_path' => $this->get('kernel')->getRootDir() . '/../web/upload/',
        'public_directory_path' => '/upload/',
        'required' => false
    ))