[英]Upload image using AJAX in Joomla 3.0 MVC
我正在尝试在Joomla MVC框架中使用AJAX jQuery上传图像。
以下是default.php,它添加了以下javascript脚本代码
$('#icon-submit').on('click',(function(e) {
$.ajax({
url: "index.php?option=com_jsmdownload&task=imageUpload",
type: "POST",
data: new FormData(this),
contentType: false,
cache: false,
processData:false,
success: function(data){
alert(data);
},
error: function(){
}
});
}));
以下是HTML代码,其中包含一个简单的文件框和一个按钮
<form action="<?php echo JRoute::_('index.php'); ?>" method="POST" name="adminForm" id="adminForm" enctype="multipart/form-data">
<input type="file" id="and_36x36" name="and_36x36">
<input id='icon-submit' type='button' value='Next ->' />
</form>
以下是controller.php中用于imageUpload任务的PHP代码。
function imageUpload(){
JFactory::getDocument()->setMimeEncoding( 'application/json' );
print_r($_FILES);
JFactory::getApplication()->close();
}
一旦选择了文件并单击按钮,就调用了ajax函数,也调用了PHP函数,但是表单数据在内部不可用。
print_r命令始终打印一个空数组。 我不知道我在做什么错。 我想获取选定的文件并将其上传到服务器,然后返回浏览器。
我推荐了多个帖子,无法找到答案。 有人可以请教。
更新1
如果我将一个独立的PHP文件设置为URL,那么它将起作用。 例如
url: "http://localhost/test/indextest.php",
但是,如果我使用控制器设置了Joomla组件路径,它将无法正常工作。
您必须将表单传递给FormData对象,您所拥有的就是按钮。
在按钮单击事件处理程序中, this
是指按钮而不是表单。
选择表单并将其传递给FormData构造函数
new FormData($(this).closest('form')[0]),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.