joacub / file-bank
一个用于将文件及其元数据、关键字和状态信息上传到文件库的Zend Framework 2模块,并提供控制器以供下载已保存的文件。
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进行图片编辑(每个保存的图片可设置多个不同大小,可配置参数)
有任何疑问或评论吗?
欢迎就本模块的任何疑问或评论通过电子邮件与我联系