【问题标题】:How to use file upload in agile toolkit 4.2如何在敏捷工具包 4.2 中使用文件上传
【发布时间】:2012-05-16 19:36:26
【问题描述】:

在某个地方有完整的 atk4.2 文件存储示例代码吗?

我一直在搜索文档和 stackoverflow,但我发现的几个示例对我不起作用。

我需要扩展Model_FileModel_Filestore_File 吗?

首先给我错误

文件中没有定义类

第二个给

无法包含 filestore/lib/Model/Filestore/File.php

将文件上传添加到 CRUD 的最简单方法是什么?

【问题讨论】:

  • 那么你想知道如何用PHP上传文件吗?
  • 没有。如何使用文件存储通过敏捷工具包框架上传文件。

标签: php user-interface frameworks atk4


【解决方案1】:

如果您想上传文件,请在您的模型中使用以下内容:

$this->add('filestore/Field_File','file_id');

该字段应引用 filestore_file.id。如果您希望上传带有缩略图的图片,那么:

$this->add('filestore/Field_Image','picture_id');

上传图片并提交表单后,文件的“id”将出现在相应的字段中。对于 Field_Image,它还将调整缩略图的大小。您可以使用自己的图像模型进一步自定义:

    ->setModel('MyImage');

class Model_MyImage extends filestore\Model_Image {
    public $default_thumb_width=32;
    public $default_thumb_height=32;
}

这在 4.2.0 中应该可以正常工作,但“开发”分支目前正在进行一些改进,允许每个图像有多个缩略图大小。

【讨论】:

  • 非常感谢你,它运行得很好,一百万年后我自己也想不通。当文件类型不受支持时,是否有一些简单的机制来显示错误?目前它只显示类似 C:\fakepath\filename.xxx 的东西现在也感觉很愚蠢,但你可以看看我的视图 Grid 并给我一些指示如何在那里添加文件链接link跨度>
  • 借助继承的力量,您可以覆盖模型中的任何方法或任何属性。模型负责导入,因此您可以在其中创建新类型或通过使用throw $this->exception('wrong file type'); 抛出异常来指导用户解决问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
  • 1970-01-01
相关资源
最近更新 更多