下载文件方式

1.没有完整文件路径,后台抓取文件流

html:

<span onclick="download('download.php?fileId=1','test.doc')">下载文件</span>

前端js:

function download(url,name){
    var oReq = new XMLHttpRequest();
    //url参数为拿后台数据的接口
    oReq.open("POST",url, true);
    alert(oReq);
    oReq.responseType = "blob";
    oReq.onload = function (oEvent) {
        var content = oReq.response;
        var elink = document.createElement('a');
        //name为后台返给前端的文件名
        elink.download = name;
        elink.style.display = 'none';
        var blob = new Blob([content]);
        elink.href = URL.createObjectURL(blob);
        document.body.appendChild(elink);
        elink.click();
        document.body.removeChild(elink);
    };

    oReq.send();
}

php:

public function download($fileID){
   header("content-type:application/json");
   $file = $this->getById($fileID);
   $fileData = file_get_contents($file->realPath);//获取到文件流直接返回
   die($fileData);
}

2.有完整文件路径,前端可抓取文件流

(1)js部分的url改为文件的完整路径即可
(2)或者直接使用a链接,href写上完整路径即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值