Download Js & PHP

本文介绍了三种常见的网页下载技术:利用HTML a标签的download属性进行直接下载、借助ExcellentExport插件导出并下载Excel表格,以及通过PHP实现文件的下载功能。文章详细解释了每种方法的实现原理及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结自己近期用到过的实现下载的几种方式

1. a 标签 download 属性

a. <a href = "test.txt" download></a>

b.还可以指定下载文件的名称

<a href = "test.txt" download = 'test_download'>Download</a>

非跨域请求的话三个浏览器火狐 谷歌 IE 都支持 download,但是如果是跨域的情况火狐是不支持的

可以用 JS 来判断是否浏览器支持 download

var isSupportDownload = 'download' in document.createElement('a');

2. 使用 js 的一个插件 Excellentexport

下载地址地址:https://github.com/jmaister/excellentexport

主要是讲界面上的表格导入到 Excel 中并下载

<a href = "" download="dataTest.xls" onclick="return ExcellentExport.excel(this, 'dataTable', 'Sheet Name Here')">
    Export to Excel 
  </a>
<table id = "dataTable">
    <tr>
      <th>Column 1</th>
      <th>Column 2</th>
      <th>Column 3</th>
      <th>Column 4</th>
    </tr>
    <tr>
      <td>100 111</td>
      <td>200</td>
      <td>300</td>
      <td>test\ttest</td>
    </tr>
  </table>

3. PHP 下载

<?php
  header("Content-Type:text/html; charset=utf-8");
  $fileName = "test.txt";
  //$file_name = iconv("utf-8", "gb2312", $file_name);//当文件名为中文时需要对其进行字符编码转换
  $fileSubPath="./";
  $filePath = $fileSubPath.$fileName;
  if(!file_exists($filePath)) {
    echo "cannot find this file";
    return;
  }
  $fp = fopen($filePath, "r");
  $fileSize = filesize($filePath);
  //一下四个 header 必须有
  header("Content-Type:application/octet-stream");
  header("Accept-Ranges: bytes");
  header("Accept-Length: $fileSize");
  header("Content-Disposition: attachment; filename=".$fileName);
  $buffer = 1024;
  $fileCount = 0;
  while(!feof($fp) && $fileCount < $fileSize){
    $fileContent = fread($fp, $buffer);
    $fileCount += $buffer;
    echo $fileContent;
  }
  fclose($fp);

?>

iconv ( string $in_charset , string $out_charset , string $str ) : string

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值