zoukankan      html  css  js  c++  java
  • js实现简单下载

    例如要下载文件的地址为:htpp://127.0.0.1/test.rar


    //该方法在火狐上没有效果的,在IE浏览器上是可以的
    window.open("htpp://127.0.0.1/test.rar");

    //该方法火狐有些版本是不支持的
    window.location.href="htpp://127.0.0.1/test.rar";

    //为了解决火狐有些版本不支持,可以改成这种方式
    window.location="htpp://127.0.0.1/test.rar";

    //该方法IE和火狐都可以,
    //url表示要下载的文件路径,如:htpp://127.0.0.1/test.rar
    function downloadFile(url) {  
       try{
            var elemIF = document.createElement("iframe");  
            elemIF.src = url;  
            elemIF.style.display = "none";  
            document.body.appendChild(elemIF);  
        }catch(e){
            zzrw.alert("下载异常!");
        }    
    }


    //表单方式直接下载文件
    //url表示要下载的文件路径,如:htpp://127.0.0.1/test.rar
    function downloadFile(url){
        var form=$("<form>");//定义form表单,通过表单发送请求
        form.attr("style","display:none");//设置为不显示
        form.attr("target","");
        form.attr("method","get");//设置请求类型 
        form.attr("action",url);//设置请求路径
        $("body").append(form);//添加表单到页面(body)中
        form.submit();//表单提交
    }


    不跳转页面请求后台下载,后台返回一个数据流,可通过表单实现
    如下:

    JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。

    get请求下载

    //url表示请求路径,进入后台处理,后台返回一个文件流
    //例如:url为htpp://127.0.0.1/test
    function downloadFile(url){

        //定义一个form表单,通过form表单来发送请求
        var form=$("<form>");

        //设置表单状态为不显示
        form.attr("style","display:none");

        //method属性设置请求类型为get
        form.attr("method","get");

        //action属性设置请求路径,(如有需要,可直接在路径后面跟参数)
        //例如:htpp://127.0.0.1/test?id=123
        form.attr("action",url);

        //将表单放置在页面(body)中
        $("body").append(form);

        //表单提交
        form.submit();
    }

    post请求下载


    //url表示请求路径,进入后台处理,后台返回一个文件流
    //例如:url为htpp://127.0.0.1/test
    function downloadFile(url){

        //定义一个form表单,通过form表单来发送请求
        var form=$("<form>");

        //设置表单状态为不显示
        form.attr("style","display:none");

        //method属性设置请求类型为post
        form.attr("method","post");

        //action属性设置请求路径,
        //请求类型是post时,路径后面跟参数的方式不可用
        //可以通过表单中的input来传递参数
        form.attr("action",url);
        $("body").append(form);//将表单放置在web中

        //在表单中添加input标签来传递参数
        //如有多个参数可添加多个input标签
        var input1=$("<input>");
        input1.attr("type","hidden");//设置为隐藏域
        input1.attr("name","id");//设置参数名称
        input1.attr("value","123");//设置参数值
        form.append(input1);//添加到表单中

        form.submit();//表单提交
    }

  • 相关阅读:
    [原]java开发文档的自动生成方式 java程序员
    帮助查看本地表单元素样子的网站 Native Form Elements java程序员
    Thingjs 开门示例:以3D机柜为例 演示thingjs如何开门
    基于WebGL架构的3D可视化平台—实现汽车行走路线演示
    WebGL的3D框架比较 ThingJS 和 Three.js
    重庆新闻联播 报道 thingJS 项目 反恐3D可视化预案 多警种3D可视化预案系统
    腾讯滨海大厦 智能楼宇 智慧建筑 3D可视化管理系统优锘科技ThingJS物联网开发案例
    基于WebGL架构的3D可视化平台—新风系统演示
    基于WebGL架构的3D可视化平台—三维设备管理(ThingJS实现楼宇设备管理3D可视化)
    【教程】ThingJS 3D开发快速入门 第一讲 开发概述·优势·项目流程
  • 原文地址:https://www.cnblogs.com/lujing-newer/p/8274218.html
Copyright © 2011-2022 走看看