rockbee / uploader-bundle
本包通过AjaxUpload库增强Symfony2文件上传体验
Requires
This package is not auto-updated.
Last update: 2024-09-22 03:07:17 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 Standard Distribution的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' ], } }) }}