uploadcare / uploadcare-symfony2
此包最新版本(v1.0.1)没有提供许可证信息。
Symfony2 官方 Uploadcare 包
v1.0.1
2013-08-15 06:17 UTC
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-14 13:52:56 UTC
README
这是一个用于与 Symfony2 一起工作的 Uploadcare 的包。
它基于 uploadcare-php 库。
需求
- Symfony 2.1+
- PHP 5.3+
- php-curl
安装
GitHub
从 git 克隆包到您的 vendor 目录
git clone git://github.com/uploadcare/uploadcare-symfony2.git vendor/uploadcare/uploadcare-symfony2 --recursive
Composer
更新 composer.json 中的 "require" 部分
"require": {
"uploadcare/uploadcare-symfony2": "dev-master"
}
现在让 composer 下载包
php composer.phar update
添加获取 git 子模块
cd vendor/uploadcare/uploadcare-symfony2 && git init && git update
编辑 app/autoload.php。添加以下内容
$loader->add('Uploadcare', __DIR__.'/../vendor/uploadcare/uploadcare-symfony2/uploadcare/src');
在 app/config/config.yml 中添加以下内容
parameters:
uploadcare.public_key: demopublickey
uploadcare.secret_key: demoprivatekey
services:
uploadcare:
class: Uploadcare\UploadcareBundle\UploadcareSymfony
arguments: [%uploadcare.public_key%, %uploadcare.secret_key%]
这将添加 Uploadcare Bundle 作为服务。
用法
您可以在控制器中这样访问此服务
$this->get('uploadcare');
它将返回一个 UploadcareSymfony 对象。该类扩展了 Uploadcare\Api 类。
创建一些实体
namespace UploadcareTest\UploadcareTestBundle\Entity;
class UCFile
{
public $file_id;
}
在控制器中创建表单
namespace UploadcareTest\UploadcareTestBundle\Controller;
use Uploadcare\UploadcareBundle\Form\Type\UploadcareWidgetType;
public function indexAction()
{
$uc_file = new UCFile();
$form = $this->createFormBuilder($uc_file)
->add('file_id', new UploadcareWidgetType())
->getForm();
return $this->render('UploadcareTestBundle:Default:index.html.twig', array(
'form' => $form->createView(),
'uploadcare' => $this->get('uploadcare'),
));
}
您可以看到一个 UploadcareWidgetType。它是一个带有特殊参数的隐藏字段,用于激活小部件
要显示小部件和表单,为控制器创建一个视图
{% extends '::base.html.twig' %}
{% block body %}
<form action="{{ path('uploadcare_test_homepage') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
{% endblock %}
{% block javascripts %}
{{ uploadcare.widget.getScriptTag|raw }}
{% endblock %}
现在您应该能够看到小部件。只需上传一些文件并提交表单。
要处理文件,编辑控制器如下
public function indexAction()
{
$uc_file = new UCFile();
$form = $this->createFormBuilder($uc_file)
->add('file_id', new UploadcareWidgetType())
->getForm();
$file = null;
$request = $this->getRequest();
if ($request->getMethod() == 'POST') {
$form->bind($request);
if ($form->isValid()) {
$data = $request->request->get('form');
$file_id = $data['file_id'];
$file = $this->get('uploadcare')->getFile($file_id);
$file->store();
}
}
return $this->render('UploadcareTestBundle:Default:index.html.twig', array(
'form' => $form->createView(),
'uploadcare' => $this->get('uploadcare'),
'file' => $file,
));
}
主要部分是使用 "getFile" 方法创建 "$file",然后在文件上使用 "store" 方法。
通过调用 "store" 方法,您告诉 Uploadcare 存储文件,并且它将在 CDN 上可用。
您可以将 "$file" 传递给 twig 模板。"$file" 是 Uploadcare\File 的一个对象。
使用此对象,您可以调用任何与文件相关的操作,并在模板中显示文件,如下所示
{{ file.resize(400, 400).getImgTag|raw }}