欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

php封装api,php可以控制硬件吗

墨初 知识笔记 119阅读
说明 实测下载后的文件与源文件哈希值一致保证数据传输安全一致。如果下载到的文件每次都165KB左右和源文件大小不符合需要用IDE打开下载的文件看看是否报致命错误提示超过最大内存限制。这个与php.ini中的“memory_limit”参数配置有关所以方法的$kilobyte参数不要设置过大。如果实际下载速率低于代码中配置的速率需要考虑是云服务器带宽或者其中某个网络链路的问题。由于添加了下载响应头的缘故所以遇到任何文件都会强制下载。 代码
/** * function 自定义文件下载速度 * param    $file_path string 文件路径 * param    $kilobyte  int    每秒发送多少千字节数据有波动 * param    $file_name string 文件名无需后缀自定义下载的初始文件名 * return   void * other    并未判断文件是否存在的逻辑所以请前置逻辑判断。 */function speedLimitedDownload($file_path, $kilobyte  1024, $file_name  ) {    $file_info  pathinfo($file_path);    header(Content-Disposition:attachment; filename. ($file_name ? $file_name . . . $file_info[extension] : $file_info[basename]) . );    header(Content-Type: . mime_content_type($file_path) . );    header(Content-Length: . filesize($file_path));    //使用二进制和只读方式打开文件资源    $handle  fopen($file_path, rb);    //判断文件指针是否到了文件末尾    while (! feof($handle)) {        // 输出数据到客户端        echo fread($handle, $kilobyte * 1024);        //刷新缓冲区使其直接输出到客户端        flush();        //此处意思是设置每秒输出多少个字节的数据。        sleep(1);    }    fclose($handle);}

标签:
声明:无特别说明,转载请标明本文来源!