使用 CakePHP 1.3 将图像上传到服务器

Posted

技术标签:

【中文标题】使用 CakePHP 1.3 将图像上传到服务器【英文标题】:Uploading an image to server using CakePHP 1.3 【发布时间】:2015-12-30 16:37:39 【问题描述】:

我目前无法使用 Cakephp 1.3 实现图像上传。

我正在使用dropzonejs 库来处理服务器的上传和发布请求,该库的文档说明如下:

服务器端实现

Dropzone 不提供处理文件的服务器端实现,但文件上传的方式与简单的文件上传形式相同,如下所示:

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
</form>

我找到了一些看起来可以工作的图片上传代码,但是我不知道如何使用 CakePHP 1.3 检索发布请求。

关于我的设置的信息

图片上传位于视图上:banners\admin_index.ctp 该位置的网址是:site.com/admin/banners/

我有一个名为banners_controller.ctp 的控制器,它具有以下功能:

admin_index() -- 渲染视图 add() -- 这使用$this-&gt;data 来保存使用uploadFile() 的文件 uploadFile() -- 这会将文件上传到服务器上

目前未使用add()uploadFile() 函数。我需要弄清楚如何处理发布请求并将其定向到这些函数。

我的完整版代码可以定位到@​​987654322@

在我看来,我正在创建 dropzone.js 链接到的表单,如下所示:

<form action="add" class="dropzone" id="adropzone"></form>

当表单操作设置为add 时,它会给出响应“服务器以 0 代码响应。”,当我查看 Chrome 网络选项卡时,有一个对“管理员/横幅/添加”的请求并说(failed) net::ERR_BLOCKED_BY_CLIENT。当我手动访问此页面时,我得到一个重定向循环:ERR_TOO_MANY_REDIRECTS

我对 CakePHP 1.3 一点也不熟悉,但是我需要将它添加到站点中,非常感谢任何帮助或指向外部资源的链接。

谢谢。

【问题讨论】:

您所知道的关于使用 PHP 上传文件的一切原则上都适用于 CakePHP。你似乎已经有了一个可行的解决方案——你正在做的哪一部分是一个问题?例如,如果您将表单提交给banners/uploadFile,您将使用函数uploadFile 我一般对PHP知之甚少。问题是我不确定框架如何引导请求,以及我如何使用它们,理想情况下我希望将请求发送到 add() 函数。我正在使用带有'/file-upload' 操作的表单,这是否意味着我需要函数名称需要是 file-upload 这与routes 有关,您不能命名函数file-upload,因为这是一个解析错误,但是是的,这就是标准路由的工作方式。如果您在继续之前对 CakePHP do the blog tutorial 非常陌生 - 另请注意 1.3 不是当前版本,因此您从旧/过时的东西开始。 我尝试将操作更改为/add,这与图像请求的函数名称相同,但不幸的是,这并没有解决任何问题。是的,我知道 Cake 1.3 已经过时了——不过我是在为一家公司工作,所以它是一个旧平台。 【参考方案1】:

你可以试试 https://blueimp.github.io/jQuery-File-Upload/ 和 CakePHP 文件上传插件

【讨论】:

以上是关于使用 CakePHP 1.3 将图像上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章

Cakephp 2+ 上传图片时调整图片大小和裁剪

Cakephp 3.x试图查看上传的图像导致缺少控制器错误

Cakephp中的AJAX文件输入图片上传

Cakephp 1.3:如何迁移到我的文章标签 - 功能

CakePHP - 如何在保存时将关联记录添加到模型中?

从 Vue 访问 CakePHP webroot 目录:图像加载