使用 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->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 将图像上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章