Cake 2.0.x 和 2.1 的 AjaxMultiUpload 插件

一个为 CakePHP 2.0.x 和 2.1 提供全面 AJAX 文件上传功能的插件。使用它,您可以向任何或所有模型添加多个文件上传行为,而无需修改数据库或架构。

CakePHP 的 AjaxMultiUpload 插件

一个为 CakePHP 2.0.x 和 2.1 提供全面 AJAX 文件上传功能的插件。使用它,您可以向任何或所有模型添加多个文件上传行为,而无需修改数据库或架构。

您可以点击上传文件按钮,或将文件拖放到按钮上。您可以一次上传多个文件,而无需点击任何按钮,并且在上传过程中会显示一个漂亮的进度通知。

使用方法

下载或检出

您可以下载 ZIP 文件:https://github.com/srs81/CakePHP-AjaxMultiUpload/zipball/master

或检出代码(将密码字段留空)

` git clone https://[email protected]/srs81/CakePHP-AjaxMultiUpload.git `

将其放在 Plugin/ 目录中

将此内容解压缩或移动到应用程序根目录下的“Plugin/AjaxMultiUpload”。

添加到 bootstrap.php 加载中

打开 Config/bootstrap.php 并添加此行

`php CakePlugin::load('AjaxMultiUpload'); `

这将允许插件加载它需要的所有文件。

创建文件目录

如果文件上传目录不存在,请确保创建正确的目录:<pre> cd cake-app-root mkdir webroot/files chmod -R 777 webroot/files</pre>

默认上传目录是 /webroot 下的“files” - 但这可以更改(参见下面的常见问题解答)。

您不必授予它 777 权限 - 只需确保 Web 服务器用户可以写入此目录即可。

添加到控制器

添加到 Controller/AppController.php 以在所有控制器中使用,或仅在您将使用它的特定控制器中使用,如下所示

`php var $helpers = array('AjaxMultiUpload.Upload'); `

添加到视图

假设您有一个具有“id”主键的“companies”表。

将此添加到您的 View/Companies/view.ctp

`php echo $this->Upload->view('Company', $company['Company']['id']); `

并将此添加到您的 View/Companies/edit.ctp

`php echo $this->Upload->edit('Company', $this->Form->fields['Company.id']); `

常见问题解答

老兄!不需要更改数据库/表架构?

是的。:) 只需将此插件放到正确的 Plugin/ 目录中,并将代码添加到控制器和视图即可。确保 webroot 下的“files”目录可写,否则上传将失败。

由于该插件使用基于模型名称和 ID 的目录结构来保存模型的相应文件,因此不需要进行任何表/数据库更改。

救命!我收到文件上传或文件大小错误信息!

默认上传文件大小限制设置为保守的 2 MB,以确保它可以在所有(包括共享)托管环境中运行。要更改此限制

  • 打开 Plugin/AjaxMultipUpload/Config/bootstrap.php 并将“AMU.filesizeMB”设置更改为您想要的任何大小(以 MB 为单位)。
  • 确保还更改 PHP 设置 (php.ini) 中的上传大小设置(upload_max_filesize 和 post_max_size),并重新启动 Web 服务器!

更改目录

您被限制在 webroot 下的“files”目录吗?不。

打开 Plugin/AjaxMultiUpload 目录下的 Config/bootstrap.php 并更改“AMU.directory”设置。

该目录将位于应用程序 webroot 目录下 - 这符合 CakePHP 约定。

更改目录路径

即将推出。

未来工作

  • 此版本不支持删除文件。

致谢

这使用了来自以下网站的 Ajax Upload 脚本:http://valums.com/ajax-upload/ 以及来自以下网站的文件图标:http://www.splitbrain.org/projects/file_icons

支持