我正在尝试使用jquery表单插件通过ajax上传图像。我希望响应是文件名,这样我就可以在发出请求的页面上显示进程和保存的图像版本。这看起来应该很简单。虽然我是一个使用cakephp和jquery的新手,但我已经用不同的方式尝试了整整三天,并且遇到了一个又一个的障碍!不管怎么说,下面是一些代码:
我有以下表格:
<?php echo $this->Form->create('Tile', array('type'=>'file', 'action' => 'uploadImage')); ?>
<div id="TileImageUpload">
<?php echo $this->Form->input('upload_image', array('type' => 'file'));?>
<?php echo $this->Form->button('upload image', array('onClick'=>'$(\'#TileNewtileForm\').ajaxSubmit({target: \'#TileImageUpload\''));?>
</div>
<?php echo $this->Form->end(__('Submit')); ?>因此,它允许用户选择一个图像,并提交给tiles控制器的uploadImage操作:
function uploadImage() {
$this->layout = 'ajax';
//process the image in here and save a copy of it, then return the images name
echo 'imagename';
}返回的内容(根据教程和我对文档的理解)应该放在#TileImageUpload中--这是响应的目标div。但实际上它只是转到uploadImage的视图,该视图只显示imagename。我希望imagename返回到发出请求的同一页面,这样我就可以将图像附加到文档中。
你知道哪里出问题了吗?
发布于 2013-04-20 16:21:57
你应该参考这个插件:http://blueimp.github.io/jQuery-File-Upload/
及其CakePHP版本:https://github.com/hugodias/FileUpload
https://stackoverflow.com/questions/15139274
复制相似问题