一、ajax post下载文件/流
<formaction=""method="post"name="aa"target="_blank"></form>
<inputtype="button"onClick="a()">
<script>
//用户单击不会提示拦截弹出窗口
functiona(){
document.forms['aa'].submit();
}</script>
在本页面打开rar等类型文件会自动提示下载的,如果要自定义下载文件名字,那需要php的文件
用上面这个把
这个可以在新窗口打开,不能设置新窗口大小,如果要实现新窗口大小可以用
$.ajax()
来模拟一个,原理:用js创建一个div模拟新页面
//先把submit按钮js修改成button
$.ajax("url",{
data:"提交参数",
dataType:"json",//xmlhtmlscriptjsonp
success:function(data,textStatus,jqXHR){
//操作,弹出层,模拟新页面操作
//data可能是xmlDoc,jsonObj,html,text,等等...
//textStatus返回状态
}
});
php下载页面,
$file_dir=dirname(__FILE__).'/';
$file_name="demo.txt";
$file_name_new="demo2.txt";//自定下载文件名称
if(!file_exists($file_dir.$file_name)){//检查文件是否存在
echo"文件找不到";
exit;
}else{
$file=fopen($file_dir.$file_name,"r");//打开文件
//输入文件标签
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:".filesize($file_dir.$file_name));
header("Content-Disposition:attachment;filename=".$file_name_new);
//输出文件内容
echofread($file,filesize($file_dir.$file_name));
fclose($file);
exit();
}
二、Ajax的优点和缺点
优点:能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息。Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。
缺点:破坏浏览器的后退与加入收藏书签功能。一个被完整读入的页面与一个已经被动态修改过的页面之间的可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。
应用
Ajax前景非常乐观,可以提高系统性能,优化用户界面。Ajax现有直接框架AjaxPro,可以引入AjaxPro.2.dll文件,可以直接在前台页面JavaScript调用后台页面的方法。但此框架与表单验证有冲突。另外微软也引入了Ajax组件,需要添加AjaxControlToolkit。dll文件,可以在控件列表中出现相关控件。
以上内容参考:百度百科-ajax
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!