a Symfony2 Bundle to handle file upload
This can be done in two different ways:
Method #1) Use composer
"require": {
"wbx/file-bundle": "*"
}
Method #2) Use deps file
[wbxFileBundle]
git=http://github.com/ma2thieu/wbxFileBundle.git
target=bundles/wbx/FileBundle
Method #3) Use git submodules
git submodule add git://github.com/ma2thieu/wbxFileBundle.git vendor/bundles/wbx/FileBundle
// app/autoload.php
$loader->registerNamespaces(array(
'wbx' => __DIR__.'/../vendor/bundles',
// your other namespaces
));
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new wbx\FileBundle\wbxFileBundle(),
// ...
);
}
# app/config/routing.yml :
wbxFileBundle_download:
pattern: /wbxfile/download/{class}/{id}
defaults: { _controller: wbxFileBundle:File:download }
# /src/my/Bundle/Entity/File.php
namespace my\Bundle\Entity;
use wbx\FileBundle\Entity\File as wbxFile;
/**
* wbx\CoreBundle\Entity\File
*
* @Orm\Entity()
* @ORM\Table()
*/
class File extends wbxFile {
}
# /src/my/Bundle/Entity/Object.php
/**
* @var \my\Bundle\Entity\File $file
*
* @ORM\ManyToOne(targetEntity="\my\Bundle\Entity\File", cascade={"all"})
* @ORM\JoinColumn(name="file_id", referencedColumnName="id")
*/
private $file;
$builder
->add('file', new \wbx\FileBundle\Form\FileType(true|false))
- Pass
true
orfalse
toFileType
constructor to display or not the "empty" checkbox to remove the uploaded file
{% include 'wbxFileBundle:File:embed.html.twig' with {
'form' : edit_form.image,
'class' : "myBundle:File",
'imagine_filter' : "my_thumb_filter"
} %}
form
is mandatoryclass
is mandatory (used for the download link)imagine_filter
is optional: if set the bundle LiipImagineBundle is needed and the value ofimagine_filter
will be used as a the name of the Imagine filter to be called to create and display a thumbnail of the picture. Ifimagine_filter
is not defined or == "" a link to the file will be displayed