很多站长朋友们都不太清楚php实现打包下载,今天小编就来给大家整理php实现打包下载,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 thinkphp打包exe 2、 怎样用多文件php实现多文件下载? 3、 php如何实现文件夹的打包下载详细操作步骤 4、 php导出excel表后,打包成压缩包,然后下载到本地如何实现? 5、 php 如何把文件夹及文件夹下面的所有文件打包成压缩包,在页面上用户点击下载按钮即可下载到本地? 6、 PHP网页上打包文件生成压缩文件zip,并弹出下载 thinkphp打包exethinkphp 打包文件,并下载
/**
* 打包下载
* 注意文件路径都是相对路径
* 不能使用ajax的方式
* @return [type] [description]
*/
public function allzip(){
$param = $this->request->param();
$ids = explode(",",$param['id']);
//要打包的文件
foreach ($ids as $k => $v){
$files[] =substr(db('seofile')->where('id',$v)->value('fileurl'),1);
}
$zip = new \ZipArchive;
//压缩文件名
$filename = 'upload/file/download.zip';
//新建zip压缩包
$zip->open($filename,\ZIPARCHIVE::OVERWRITE | \ZIPARCHIVE::CREATE);
//循环压缩文件
foreach($files as $key => $value){
$zip->addFile($value,basename($value));
}
//打包zip
$zip->close();
header("Cache-Control:public");
header("Content-Description: File Transfer");
header("Content-disposition: attachment; filename=".basename($filename));//文件名
//header("Content-Type: application/force-download");
header("Content-Type:application/zip"); //格式为zip
header("Content-Transfer-Encoding:binary"); //这是二进制文件
header("Content-Length:".filesize($filename)); //文件大小
@readfile($filename);
// @unlink($filename);
}
怎样用多文件php实现多文件下载?好可怜啊,谁给你的任务,这个是不可能的,和框架、语言都没关系,是不是你的上级看错了文档啊,人家要求多个文件用zip打包下载(比如把文档中的“别忘了用zip”看成“别用zip”)
这种只能js同时弹出多窗口了,例如
<form class="download_form" target="download_url_1" action="download_url_1"></form>
<form class="download_form" target="download_url_2" action="download_url_2"></form>
...
<button onclick="$('form.download_form').each(function(){this.submit();})" type="button">点</button>
只要下载是正常的,这种弹出会在用户操作后(下载或取消)自动消失的。但是用户要一个一个点还是很差劲的用户体验。
window.open也行,但是容易受浏览器弹窗设置影响,所以不建议。
php如何实现文件夹的打包下载详细操作步骤public function downloads(){
$file = "./Ludian_Disaster_Relief_Map_Operation_Guide.pdf";
if(file_exists($file)){
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
ob_clean();
flush();
readfile($file);
}else{
$this->error("文件不存在");
}
}
php导出excel表后,打包成压缩包,然后下载到本地如何实现?用PHPExcel,PHPExcel是相当强大的 MS Office Excel 文档生成类库。
你上它的官/网把程序包下/载下来,里面有 PHPExcel 的程序、还有30个实例程序和三个文档。
看一下其中的开发文档你就会用了。
读取(这段在开发文档里有的,在13页):
require_once 'Classes/PHPExcel/IOFactory.php';
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);
$objPHPExcel = $objReader->load("test.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();
echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
echo '<tr>' . "\n";
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);
foreach ($cellIterator as $cell) {
echo '<td>' . $cell->getValue() . '</td>' . "\n";
}
echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
php 如何把文件夹及文件夹下面的所有文件打包成压缩包,在页面上用户点击下载按钮即可下载到本地?一般不会下载的时候重新打包,因为php打包是一个非常消耗资源的过程。
使用php zip 打包,然后记录包的路径,下载的时候直接下载该路径文件即可。
PHP网页上打包文件生成压缩文件zip,并弹出下载既然你只是想学习如何打包.
那我重点就回答你这一块,正好我刚刚用到;
$filename = "./" . date ( 'YmdH' ) . ".zip"; // 最终生成的文件名(含路径)
// 生成文件
$zip = new ZipArchive (); // 使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
if ($zip->open ( $filename, ZIPARCHIVE::CREATE ) !== TRUE) {
exit ( '无法打开文件,或者文件创建失败' );
}
//$fileNameArr 就是一个存储文件路径的数组 比如 array('/a/1.jpg,/a/2.jpg....');
foreach ( $fileNameArr as $val ) {
$zip->addFile ( $val, basename ( $val ) ); // 第二个参数是放在压缩包中的文件名称,如果文件可能会有重复,就需要注意一下
}
$zip->close (); // 关闭
//下面是输出下载;
header ( "Cache-Control: max-age=0" );
header ( "Content-Description: File Transfer" );
header ( 'Content-disposition: attachment; filename=' . basename ( $filename ) ); // 文件名
header ( "Content-Type: application/zip" ); // zip格式的
header ( "Content-Transfer-Encoding: binary" ); // 告诉浏览器,这是二进制文件
header ( 'Content-Length: ' . filesize ( $filename ) ); // 告诉浏览器,文件大小
@readfile ( $filename );//输出文件;
关于php实现打包下载的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php实现打包下载 php打包phar的详细内容...