想实现的功能如下:
<form name="frm" method="post" enctype="multipart/form-data">
<table>
......
<input id="myfile" name="myfile" type="file"/>
.......
</table>
</form>
Js:
function aa(){
document.forms[0].action='/Pfmg0420/upload';
document.forms[0].target='_blank';
document.forms[0].submit();
}
uploadAction:
.....
$fileName = $_FILES["myfile"]["name"];
.....
现在我想用不刷新页面,就能达到和function aa()的效果怎么实现。谢谢。
我这个是在zendframework下的开发。
我现在是这样写的:
$.ajax({
type: "POST",
url: '/Pfmg0420/upload',
data: {"filename":'aa'},
dataType: "json",
async:false,
success: function(json) {
}
});
这个只能在后台获得filename的值为aa,不知道怎么把form提交到后台。
望赐教, 谢谢
------解决方案--------------------
ajax不能上传文件,你可以下载其他组件,jquery.form之类的,已经封装好提交文件的相关控制了
这类插件都是使用隐藏iframe或者flash来实现无刷新上传的,你要简单一些就直接提交表单到隐藏的iframe中来实现即可,不一定需要jquery
<iframe name="ajaxifr" style="display:none"></iframe>
<form name="frm" method="post" enctype="multipart/form-data" target="ajaxifr">
<table>
......
<input id="myfile" name="myfile" type="file"/>
.......
</table>
</form>
$fileName = $_FILES["myfile"]["name"];
//保存文件操作
echo "<script>alert('上传完毕');parent.frm.reset()</script>"//输出js脚本提示信息并且重置表单
------解决方案--------------------
楼上的方法好。