hugomn/uploader-bundle

此包使用AjaxUpload库增强了Symfony2文件上传体验

安装: 16

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

语言:JavaScript

类型:symfony-bundle

dev-master 2013-05-30 11:21 UTC

This package is not auto-updated.

Last update: 2024-09-14 13:02:19 UTC


README

EWZUploaderBundle 使用 AjaxUpload 库增强了Symfony2文件上传体验。

安装

步骤1:使用Composer(推荐)

要使用Composer安装EWZUploaderBundle,只需将以下内容添加到您的 composer.json 文件中

// composer.json
{
    // ...
    require: {
        // ...
        "excelwebzone/uploader-bundle": "master-dev"
    }
}

注意:请将上面的代码片段中的 master-dev 替换为最新的稳定分支,例如 1.0.*

然后,您可以通过在您的 composer.json 文件所在目录运行Composer的 update 命令来安装新的依赖项

$ php composer.phar update

现在,Composer将自动下载所有必需的文件,并为您安装它们。接下来,您只需更新您的 AppKernel.php 文件,并注册新的包

<?php

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new EWZ\Bundle\UploaderBundle\EWZUploaderBundle(),
    // ...
);

步骤1(替代):使用 deps 文件(Symfony 2.0.x)

首先,从您的Symfony标准发行版中检出代码副本。只需将以下内容添加到您的 deps 文件中

[EWZUploaderBundle]
    git=http://github.com/excelwebzone/EWZUploaderBundle.git
    target=/bundles/EWZ/Bundle/UploaderBundle

然后,与您的内核注册该包

<?php

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new EWZ\Bundle\UploaderBundle\EWZUploaderBundle(),
    // ...
);

确保您还向自动加载器注册了命名空间

<?php

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

现在,使用 vendors 脚本来将新添加的存储库克隆到您的项目中

$ php bin/vendors install

步骤2:配置包的

配置很简单,只需选择一个上传目录并设置默认文件权限(如大小和MIME类型)

# app/config/config.yml

ewz_uploader:
    load_jquery: false
    media:
        max_size: 5120k
        mime_types: ['audio/wav', 'audio/x-wav', 'audio/wave', 'audio/x-pn-wav']
        dir: %kernel.root_dir%/../media
        folder: uploads
    url:
        upload: ewz_uploader_file_upload
        remove: ewz_uploader_file_remove
        download: ewz_uploader_file_download

注意:如果您启用了 load_jquery,它将自动从Google API直接包含库。

注意:要禁用文件下载,只需设置 download: false

恭喜!您已经准备好了!

基本用法

现在所有配置都已完成,我们将探讨如何将EWZUploaderBundle集成到您的应用程序中。我们将假设您已经创建了一个包含上传字段的表单类型对象。所以您需要做的就是

<?php

public function buildForm(FormBuilder $builder, array $options)
{
    // ...
    $builder->add('audio', 'ewz_uploader');
    // ...
}

您也可以为每个字段设置特殊的配置

<?php

public function buildForm(FormBuilder $builder, array $options)
{
    // ...
    $builder->add('audio', 'ewz_uploader', array(
        'max_size'     => '5120k',
        'mime_types'   => array(
            'audio/wav',
            'audio/x-wav',
            'audio/wave',
            'audio/x-pn-wav'
        ),
        'folder'       => 'music',
        'url_upload'   => $this->router->generate('ewz_uploader_file_upload'),
        'url_remove'   => $this->router->generate('ewz_uploader_file_remove'),
        'url_download' => $this->router->generate('ewz_uploader_file_download'),
    ));
    // ...
}

注意:验证很简单,将其视为隐藏字段。

太好了,现在您可以添加表单小部件到您的页面上了

PHP:

<?php

// load resources
echo $view['ewz_uploader']->initialize();
// ...

$view['form']->setTheme($form, array('EWZUploaderBundle:Form'));

echo $view['form']->widget($form['audio'], array(
    'mime_types' => array(
        'audio/wav',
        'audio/x-wav',
        'audio/wave',
        'audio/x-pn-wav'
    ),
));

Twig:

{# load resources #}
{{ ewz_uploader_initialize() }}
{# ... #}


{% form_theme form 'EWZUploaderBundle:Form:ewz_uploader_widget.html.twig' %}

{{ form_widget(form.audio, { 'attr': {
    'mime_types': [
        'audio/wav',
        'audio/x-wav',
        'audio/wave',
        'audio/x-pn-wav'
    ],
} }) }}