【发布时间】:2015-01-17 12:07:40
【问题描述】:
我使用CakePHP-Upload plugin,现在需要使用无表单上传,如下示例:Programmatic File Retrieval without a Form
我所有的上传都存储在关联模型中,称为附件。 所以当我保存文章的时候,同时把图片保存在Attachmen模型中。
插件文档建议如下:
<?php
$this->Article->set(array('file' => $image_path)); // ?????
$this->Article->save();
?>
我在服务器上有大量图像,之前通过 Joomla CMS 上传,现在我将数据迁移到基于 CakePHP 框架的自定义 CMS。 我需要通过这个插件拍摄所有这些照片并再次上传。
如何根据我的需要正确使用这个插件,我尝试把路径放到本地图片,但是上传不行???
编辑
$image_path = WWW_ROOT . 'img' . DS . 'attachment' . DS . '59'.DS.'hpim4799.jpg';
debug($image_path);
'C:\xampp\htdocs\portal\webroot\img\attachment\59\hpim4799.jpg'
不要保存记录,也不要创建新图像。 注意,通过 HTML 表单上传效果很好,我使用的是 windows 7 和 xampp 服务器。
编辑 2 / 解决方案
图片路径必须是有效的网址,例如'http://localhost/portal/img/attachment/59/hpim4799.jpg'
$image_path = Router::url('/', true) . 'img/attachment/59/hpim4799.jpg';
谢谢。
【问题讨论】:
-
您是说需要重新上传所有图片。为什么?上传插件将上传内容存储在表格中。如果你能找出它是什么路径,什么名字,你可以构建一些代码来生成数据库行,并复制文件手册?
-
不,我需要生成与服务器上已有的原始图像不同大小的新缩略图。我已将文件名保存在数据库中,原始图像位于一个文件夹中。计划是对所有记录进行循环,查找相关图像并生成新图像,这些图像将按记录的 id 数放置在文件夹中。
-
啊好吧...我会检查它的文档,但不能保证我有答案;)
-
文件
C:\xampp\htdocs\portal\webroot\img\attachment\59\hpim4799.jpg真的存在吗?如果上传不起作用,它不应该存在吗? -
是的,有一个文件。是的,有一个文件。行为仅适用于远程文件。
标签: cakephp file-upload cakephp-2.5