我一直在研究这个问题并且无法理解。基本上我有一个我的模型的添加页面,您可以从URL或文件上传添加地图。我有所有的字段和验证,但我如何以及在哪里管理上传的文件?必须有一些简单的方法来做到这一点。谢谢!
答案 0 :(得分:20)
首先,您的表单需要设置为允许上传文件。
<?php echo $form->create(Model, array('type' => 'file')); ?>
这将允许任何文件输入实际使用$form->file(field)
或$form->input(field, array('type' => 'file'))
将文件上传到您的服务器。
文件上传后,您应该处理模型中的所有其他内容:
function beforeSave($created) {
extract($this->data[Model][field]);
if ($size && !$error) {
move_uploaded_file($tmp_name, destination);
$this->data[Model][field] = destination;
}
return true;
}
这些只是基础知识,所以一定要找到最适合您需求的解决方案。
答案 1 :(得分:0)
注意: MeioUploadBehavior已被弃用。相反, jrbasso 会建议Upload Plugin
。
除了已经给出的好答案之外,我想暗示MeioUploadBehavior
,目前由jrbasso at github维护,这对我自己的CakePHP项目有很大的帮助。
您只需使用$actsAs
字段将行为添加到模型中,同时指定任何自定义首选项。然后在数据库中创建必要的字段(由提供的文档详细描述),或者将模型配置为不使用任何数据库表。最后在添加页面中设置表单,也在提供的文档中进行了描述。然后,这种行为将为您完成其余的工作。
答案 2 :(得分:0)
您可以使用Zend Components来处理文件上传。我的网站上有一个很好的例子: CakePHP file upload using Zend Components