我想在Joomla MVC框架中使用AJAX jQuery上传图像。使用Joomla 3.0中的AJAX上传图像MVC
下面是它增加了下面的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(){
}
});
}));
下面是它包含一个简单的文件框和一个按钮
<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>
下面的HTML代码的PHP代码如default.php在imageUpload任务的controller.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组件路径不起作用。
这是否组件'com_jsmdownload'要求用户登录才能上传图片?还是会让任何人? – Craig 2014-11-22 09:02:51
为什么不使用内置的软件包进行上传?上传图像很危险,您需要构建身份验证检查,授权检查,名称的广泛检查以及映像本身是否包含恶意代码。我在仔细阅读OWASP网站之前仔细阅读。 – Elin 2014-11-22 20:34:41
@cppl - 是这个组件仅用于注册用户。有没有可用于Joomla上传图片的内置软件包? – Malaiselvan 2014-11-23 10:57:55