用PHP下载文件并且修改文件名:
本地下载文件:
$file_url = “./本地路径”
$out_filename = ‘下载后自动保存的名字’;
if(!file_exists($file_url)) {
echo "不存在";
}else{
header('Accept-Ranges: bytes');
header('Accept-Length: ' . filesize( $file_url ));
header('Content-Transfer-Encoding: binary');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $out_filename);
header('Content-Type: application/octet-stream; name=' . $out_filename);
if(is_file($file_url) && is_readable($file_url)){
$file = fopen($file_url, "r");
echo fread($file, filesize($file_url));
fclose($file);
}
}
跨域下载文件:
$file_ur = ‘远程文件地址’;
$out_filename='下载后自动保存的文件名';
$file = @fopen($file_url, "r");
if($file){
$content="";
while(!feof($file)){//测试文件指针是否到了文件结束的位置
$data=fread($file,1024);
$content.=$data;
}
fclose($file);
$filesize = strlen($content);
header('Accept-Ranges: bytes');
header('Accept-Length: ' . $filesize);
header('Content-Transfer-Encoding: binary');
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . $out_filename);
header('Content-Type: application/octet-stream; name=' . $out_filename);
echo $content;
die();
}else{
echo "文件不存在";
}
php 下载文件并定义名字:
<?php
$_GET['t'] ? $file_name = $_GET['t'] : header('HTTP/1.1 404 NOT FOUND'); //下载文件名
$city = explode('-', $file_name)[0];
//检查文件是否存在
if (!file_exists ('./okfile/'.$file_name.'.txt')) {
header('HTTP/1.1 404 NOT FOUND');
} else {
//以只读和二进制模式打开文件
$file = file_get_contents('./okfile/'.$file_name.'.txt');
//告诉浏览器这是一个文件流格式的文件
header( "Content-type: application/octet-stream" );
//请求范围的度量单位
header ( "Accept-Ranges: bytes" );
//用来告诉浏览器,文件是可以当做附件被下载,下载后的文件名称为$file_name该变量的值。
header ( "Content-Disposition: attachment; filename=" . $city.'的ip查询'.date('Y-m-d H:i:s').'.txt' );
//读取文件内容并直接输出到浏览器
echo $file;
exit ();
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END