wbx/file-bundle

file upload

Installs: 1 934

Dependents: 0

Suggesters: 0

Security: 0

Stars: 10

Watchers: 2

Forks: 2

Open Issues: 0

Type:symfony-bundle

v0.4.0 2019-10-24 10:33 UTC

This package is auto-updated.

Last update: 2024-04-24 20:21:23 UTC


README

wbxFileBundle
=============

a Symfony2 Bundle to handle file upload


Installation
============

Bring in the vendor libraries
-----------------------------

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


Register the wbxFileBundle namespaces (Not required for composer!)
------------------------------------------------------------------

    // app/autoload.php
    $loader->registerNamespaces(array(
        'wbx'  => __DIR__.'/../vendor/bundles',
        // your other namespaces
    ));


Add wbxFileBundle to your application kernel
--------------------------------------------

	// app/AppKernel.php
    public function registerBundles()
    {
        return array(
            // ...
            new wbx\FileBundle\wbxFileBundle(),
            // ...
        );
    }


Usage example
=============

Entity
------

	# /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;


	$mask_path can be used to point to a bitmap file that will be used as a mask.
	the image will be resized and cropped to the mask dimensions
	(only work with imagick extension)

Form
----

	$builder
		->add('file', new \wbx\FileBundle\Form\FileType($with_empty, $with_name))

* $with_empty (true|false) : display or not the "empty" checkbox to remove the uploaded file
* $with_name (true|false) : display or not the "name" field. Name default to the uploaded filename

* If the php imagick extension is available it is used to create a png preview of uploaded pdf files. $file->getWebPath() will automatically return the preview file.

View
----

	{% include 'wbxFileBundle:File:embed.html.twig' with {
		'form'              : edit_form.image,
		'class'             : "myBundle:File",
		'imagine_filter'    : "my_thumb_filter"
	} %}

*   `form` is mandatory
*   `class` is mandatory (used for the download link)
*   `imagine_filter` is optional: if set the bundle [LiipImagineBundle](http://github.com/liip/LiipImagineBundle) is needed and the value of `imagine_filter` will be used as a the name of the Imagine filter to be called to create and display a thumbnail of the picture.
    If `imagine_filter` is not defined or == "" a link to the file will be displayed