`

cakephp之Ajax异步文件上传<摘录>

阅读更多
why?

同一个需要填写信息和上传文件,一步步保存避免信息丢失。
how?

尝试按照cookbook 使用'prototype.js'

echo $javascript->link('prototype');
echo $javascript->link('scriptaculous');

表单中使用ajaxHelper设置提交按钮

<form name="uploadForm" id="uploadForm" enctype="multipart/form-data" action="/AppFiles/uploadFile" method="POST">

<input name="uploadedfile" type="file" /><br />

<input name="fname" type="text" /><br />

echo $ajax->submit('Upload File', array('url'=> array('controller'=>'AppFiles', 'action'=>'uploadFile'), 'update' => 'testdiv'));

在controller中发现不能使用$_FILE['uploadedfile']['name']或其他方法如$this->params['form'][‘uploadedfile’]获取信息,而正常的文本fname的值则可通过$this->params['form']['fname']获取。
solution?

搜索发现一本 begging cakePHP的书讲ajax upload

“The reason why I’ve used jQuery here is that it is the only Ajax framework I’ve been able to find that will serialize the form elements and actually send to the server as a post variable the1 <input type="file">element.”

好吧!改用jquery库试试

echo $javascript->link('jquery-1.4.2.min.js');
echo $javascript->link('jquery.form.js');   //不可缺少

<form name="uploadForm" id="uploadForm" enctype="multipart/form-data" action="/AppFiles/uploadFile" method="POST">
<div id="testdiv"
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />

<?php echo $this->Form->button('Upload Text',array('onClick'=>'$(\'#uploadForm\').ajaxSubmit(

{target: \'#testdiv\',url: \''.$html->url('/AppFiles/uploadFile').'\'}

); return false;'));?>

</div>
</form>
controller中使用basename( $_FILES['uploadedfile']['name']) 获取不包含目录的文件名

ok 成功!

参考文献:http://www.davidgolding.net/cakephp/ajax-file-uploading-with-cake-and-jquery.html
分享到:
评论

相关推荐

    CakePHP php框架-PHP

    &lt;/p&gt;&lt;p&gt;主要特性:&lt;/p&gt;&lt;p&gt;基于MVC架构&lt;/p&gt;&lt;p&gt;视图支持Ajax&lt;/p&gt;&lt;p&gt;内置校验框架&lt;/p&gt;&lt;p&gt;提供应用程序的基础模块和CRUD 代码自动生成功能&lt;/p&gt;&lt;p&gt;提供处理session,request,security的组件&lt;/p&gt;&lt;p&gt;灵活的视图缓存功能&lt;/p&gt;...

    CakePHP使用ajax传值

    cakphp关于ajax传值的方法,以及中文乱码,路径不正确等

    Ajax-cakephp-ajax.zip

    Ajax-cakephp-ajax.zip,ajax for cakephp:一个易于处理ajax请求的插件。,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...

    CakePHP :: Ajax Demo

    This is a simple demo of some of the AJAX helpers now available in CAKE. These helpers are directly modeled on Ruby On Rails. In fact, they were shamelessly ported from rails almost verbatim. You can ...

    cakephp-ajax:用于CakePHP的AJAX:用于简化处理AJAX请求的插件

    CakePHP Ajax插件 一个CakePHP插件,使使用AJAX变得容易。 该分支适用于CakePHP 4.0+ 。 有关详细信息,请参见。 这个插件是做什么用的? 基本上是DRY(不要重复自己)和简单的AJAX处理。 演示版 有关实时演示,...

    cakephp-ajax-validation:Cakephp ajax 验证插件

    Cakephp Ajax 验证Cakephp ajax 验证插件要求CakePHP &gt;= 2.0 jQuery &gt;= 1.7安装克隆/复制此目录中的文件到app/Plugin/AjaxValidation 通过调用CakePlugin::load('AjaxValidation');确保插件已加载到app/Config/...

    Ajax-Paginacion-Ajax-CakePHP3.zip

    Ajax-Paginacion-Ajax-CakePHP3.zip,实现paginación en ajax usando cakephp3,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分...

    cakephp中文手册PDF版

    cakephp中文手册PDF版&lt;br/&gt;www.1x3x.net/cakephp/index.html

    PHP的框架之CakePHP-CakePHP教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    wrench:CakePHP 3维护模式插件

    CakePHP &lt;3&gt; = 3.3.0 CakePHP&gt; = 3.5.0 扳手1.X 扳手2.X 扳手3.X PHP&gt; = 5.4.16 PHP&gt; = 5.5.9 PHP&gt; = 5.6.0 使用CakePHP DispatcherFilter机制 使用CakePHP中间件堆栈和PSR-7请求/响应实现 使用CakePHP...

    PHP的框架之CakePHP-CakePHP教程终极教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    plus:插件 Jquery 在 CakePHP 3.x 中的表上添加删除功能

    plus - 在 CakePHP 中添加和删除表 安装 在默认模板中链接 js 文件 蛋糕PHP &lt;?= $this-&gt;Html-&gt;script("jquery.plus");?&gt; html [removed][removed] 用法 &lt;table&gt; &lt;thead&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;/tbody&gt; ...

    CakePHP3-Proffer, CakePHP 3的上传插件.zip

    CakePHP3-Proffer, CakePHP 3的上传插件 CakePHP3-ProfferCakePHP 3的上传插件。 是什么?,needed upload upload upload upload upload upload upload plugin plugin plugin

    CakePHP-AjaxMultiUpload:CakePHP 2插件,允许使用AJAX轻松上传多文件

    CakePHP的AjaxMultiUpload插件适用于CakePHP 2.0.x和2.1的功能完善的AJAX文件上传器插件。 使用此功能,您可以将多个文件上载行为添加到任何或所有模型中,而无需修改数据库或架构。 您可以单击“上传文件”按钮,或...

    poedit 处理Cakephp的etc文件问题

    poedit 处理Cakephp的etc文件问题,这个文档有比较详细的介绍如何使用poedit 和如何处理etc文件问题。

    cakephp php-framework

    There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...

    cakephp 框架

    cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架

    CakePHP php框架 v3.7.0 beta1.zip

    视图支持Ajax 内置校验框架 提供应用程序的基础模块和CRUD 代码自动生成功能 提供处理session,request,security的组件 灵活的视图缓存功能 面向对象 无需配置:只要安装好数据库 兼容PHP4和PHP5。 CakePHP ...

    sublime-cakephp-find:您可以找到文件并轻松打开

    sublime-cakephp查找 您可以找到文件并轻松打开。 要求 崇高文字2.x CakePHP版本1.3.x或版本2.x 安装 OSX $ cd ~/Library/Application\ ... Copy the directory to: "C:\Users\&lt;username&gt;\AppData\Roaming\Sublime Te

    CakePHP php框架 v3.7.8.zip

    视图支持Ajax 内置校验框架 提供应用程序的基础模块和CRUD 代码自动生成功能 提供处理session,request,security的组件 灵活的视图缓存功能 面向对象 无需配置:只要安装好数据库 兼容PHP4和PHP5。 CakePHP ...

Global site tag (gtag.js) - Google Analytics