joacub/file-bank

此包最新版本(dev-master)没有提供许可信息。

一个用于将文件及其元数据、关键字和状态信息上传到文件库的Zend Framework 2模块,并提供控制器以供下载已保存的文件。

安装: 672

依赖者: 2

建议者: 0

安全: 0

星标: 1

关注者: 2

分支: 10

类型:模块

dev-master 2018-02-13 00:52 UTC

This package is not auto-updated.

Last update: 2024-09-10 02:45:23 UTC


README

基于 FILEBANK 构建

本模块提供了一种将文件存储在结构化数据库中的方法,并提供了文件访问器以在无需设置公开文件夹和担心安全和htaccess配置的情况下获取用于下载或显示的文件。

还提供了视图辅助器,以便访问文件的下载URL以及文件信息。

此模块处于积极开发阶段。有关即将推出的功能,请参阅README底部。

要求

  • PHP 5.3
  • Zend Framework 2
  • Doctrine 2

请参阅 https://github.com/artur-gajewski/FileBank

关注我的Twitter:@GajewskiArtur

使用Composer进行安装

转到您的项目目录,并在composer.json文件中的"require"列表中添加以下行

"artur-gajewski/file-bank": "dev-master"

现在运行Composer

php composer.phar install

然后,将'FileBank'添加到APPLICATION_ROOT/config/application.config.php中的Module数组中

<?php
return array(
    'modules' => array(
        ...
        'FileBank',
        ...
    ),
);

接下来,通过在应用程序的MySQL数据库中运行data/create_scema.sql文件中的两个查询来创建一个新的表

CREATE TABLE filebank (
  id int(11) NOT NULL auto_increment,
  name varchar(250) NOT NULL,
  size int(11) NOT NULL,
  mimetype varchar(250) NOT NULL,
  isactive int(11) NOT NULL,
  savepath varchar(250) NOT NULL,
  keywords varchar(500),
  PRIMARY KEY (id)
);

CREATE TABLE filebank_keyword (
  id int(11) NOT NULL auto_increment,
  fileid int(11) NOT NULL,
  value varchar(250),
  PRIMARY KEY (id)
);

配置Doctrine和FileBank参数

FileBank模块使用Doctrine访问为其指定的数据库表。FileBank将文件信息保存到数据库中,并提供了在任何时候利用这些信息的功能。

FileBank模块包在FileBank/config/module.config.php中包含其自己的配置,但您永远不要修改在vendor目录下安装的模块中发现的任何配置。

相反,如果您想覆盖FileBank模块提供的任何配置参数,您应该创建一个新的配置文件APPLICATION_ROOT/config/autoload/FileBank.global.php

<?php
return array(
    ...
    'doctrine' => array(
        'connection' => array(
            'orm_default' => array(
                'driverClass' => 'Doctrine\DBAL\Driver\PDOMySql\Driver',
                'params' => array(
                    'host'     => 'localhost',
                    'port'     => '3306',
                    'user'     => 'username',
                    'password' => 'password',
                    'dbname'   => 'database_name',
                )
            )
        ),
        ...

这将使用您自己的设置覆盖提供的包的默认设置。

您还可以修改与包一起提供的默认参数设置,以便它们符合您的需求。此类参数包括

'params' => array(
        'filebank_folder'   => '/data/filebank/', 
        'default_is_active' => true,
        'chmod'             => 0755,
    ),
  • filebank_folder -> 文件保存到的filebank根文件夹
  • default_is_active -> 文件是否默认设置为活动状态
  • chmod -> 创建文件夹后,应使用什么chmod

从控制器访问FileBank

FileBank模块可通过Service Locator访问

$fileBank = $this->getServiceLocator()->get('FileBank');

获取服务和创建对象后,您可以使用它来完成操作

$entity = $fileBank->save('/tmp/myfile.jpg');

返回值是文件的FileBank实体,您可以从它获取视图辅助器可用的信息。

您还可以通过向save()函数添加数组来为文件附加关键字

$keywords = array('Foo', 'Bar', 'Hey');

$entity = $fileBank->save('/tmp/myfile.jpg', keywords);

这将将这些三个关键字附加到文件上。您可以通过以下方式获取具有特定关键字(s)的文件

$fileBank->getFilesByKeywords(array('Foo', 'Hey'));

这将返回一个与关键字Foo和Hey匹配的FileBank实体数组。关键字在保存和检索功能中的使用都是不区分大小写的。

从FileBank下载文件

本包附带路由器和控制器,可从视图脚本中启用文件目录下载。您只需将视图脚本的链接指向

http://YourApplication.com/files/<id>

ID是保存到FileBank中的文件的标识符。

在视图脚本中,您可以使用FileBank的视图辅助器,它返回文件的实体

<a href="<?php echo $this->getFileById(145)->getUrl(); ?>">Download <?php echo $this->getFileById(145)->getName(); ?></a>

或者,可以将文件直接放置在IMG标签中,以显示图像及其标题数据

<img title="<?php echo $this->getFileById(145)->getName(); ?>" src="<?php echo $this->getFileById(145)->getUrl(); ?>"/>

用户点击此生成的URL后,将出现下载提示,文件可供下载。

敬请期待...

将在某个时间点添加的功能

  • 上传文件的版本控制
  • 使用GD进行图片编辑(每个保存的图片可设置多个不同大小,可配置参数)

有任何疑问或评论吗?

欢迎就本模块的任何疑问或评论通过电子邮件与我联系

info@arturgajewski.com