`

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使用ajax传值

    CakePHP框架中实现Ajax传值是通过AJAX (Asynchronous JavaScript and XML) 技术与后端的CakePHP控制器进行数据交换的一种方式。通常在Web开发中,Ajax用于创建更为动态和响应快速的用户界面。当用户与页面上的元素...

    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的CMS教程

    &lt;th&gt;创建时间&lt;/th&gt; &lt;/tr&gt; &lt;!-- 使用foreach遍历$articles,打印文章信息 --&gt; &lt;?php foreach ($articles as $article): ?&gt; &lt;tr&gt; &lt;td&gt;&lt;?= $this-&gt;Html-&gt;link($article-&gt;title, ['action' =&gt; 'view', $article-&gt;...

    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处理。 演示版 有关实时演示,...

    Cake框架

    &lt;th&gt;Created&lt;/th&gt; &lt;/tr&gt; &lt;?php foreach ($this-&gt;post-&gt;find_all() as $post): ?&gt; &lt;tr&gt; &lt;td&gt;&lt;?=$post['id']?&gt;&lt;/td&gt; &lt;td&gt;&lt;?=$this-&gt;link_for($post['title'], "/posts/view/{$post['id']}")?&gt;&lt;/td&gt; &lt;td&gt;&lt;?=$...

    Cakephp安装和配置

    - 修改 `httpd.conf` 文件中的 `DocumentRoot` 和 `&lt;Directory&gt;` 设置。 ```conf DocumentRoot "E:/htdocs/app/webroot" &lt;Directory "E:/htdocs/app/webroot"&gt; ``` 2. **启用 URL 重写** - 在 `httpd.conf` ...

    如何有效学习html基本语言.pdf

    要有效学习HTML,首先要理解其基本元素,如标题(`&lt;h1&gt;`到`&lt;h6&gt;`)、段落(`&lt;p&gt;`)、图像(`&lt;img&gt;`)、链接(`&lt;a&gt;`)等。了解每个标签的作用和使用场景,以及如何通过类(class)和ID选择器来增加自定义样式。 CSS...

    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 1.2 API 中文文档

    为了提高性能,CakePHP 提供了多种缓存策略,包括文件系统、内存(如APC)和数据库等。 **总结** CakePHP 1.2 API 中文文档覆盖了框架的主要组件、类库和方法,是开发者学习和使用该框架的重要参考资料。通过深入...

    初学web开发需要掌握哪些知识.docx

    理解基本的HTML标签,如段落(`&lt;p&gt;`)、标题(`&lt;h1&gt;`到`&lt;h6&gt;`)、图像(`&lt;img&gt;`)、链接(`&lt;a&gt;`)等至关重要。随着HTML5的普及,学习新的元素和属性,如音频和视频支持,离线存储,以及新的表单控件,也是必要的。 ...

    19个Web开发速查表

    它引入了新的元素如`&lt;header&gt;`、`&lt;nav&gt;`、`&lt;section&gt;`、`&lt;article&gt;`和`&lt;footer&gt;`,增强了语义化。同时,HTML5支持离线存储(AppCache)、拖放功能、媒体元素(音频、视频)以及 canvas 和 svg 等图形绘制功能。 2. ...

    poedit 处理Cakephp的etc文件问题

    ### 关于poedit处理Cakephp的etc文件问题 在探讨如何使用poedit处理Cakephp的etc文件问题之前,我们先来了解一下几个基本概念以及Cakephp的国际化(i18n)与本地化(L10n)的过程。 #### 一、i18n与L10n简介 i18n...

    PHP的框架之CakePHP-CakePHP教程

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

    CakePHP创建验证器

    '&lt;/font&gt;&lt;br&gt;'; } } } else { echo "没有错误。"; } echo $this-&gt;Form-&gt;create("Logins", array('url' =&gt; '/validation')); echo $this-&gt;Form-&gt;input('username'); echo $this-&gt;Form-&gt;input('password'); echo ...

    cakephp所见即所得编辑器

    在CakePHP中,你可以创建一个控制器方法来接收上传请求,处理文件存储,并返回成功或失败的信息。例如,创建一个`ImagesController`,并在`add`方法中处理上传逻辑。 4. **与模型交互**: 如果编辑器用于保存...

    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...

Global site tag (gtag.js) - Google Analytics