ホームページ  >  記事  >  バックエンド開発  >  PHPオンラインパッケージダウンロード機能例

PHPオンラインパッケージダウンロード機能例

高洛峰
高洛峰オリジナル
2016-12-20 15:22:321256ブラウズ

この記事の例では、PHP オンライン パッケージ ダウンロード機能を実装する方法を説明します。ご参考までに、詳細は次のとおりです。

昨夜、私はこのパッケージ化とダウンロードを行うのにとても忙しかったです。問題はいくつかありますが、1 つ目は PHP_ZIP.dll の起動時の問題です。つまり、PHP.INI の extend_dir の前にある「;」記号を削除するだけです。 IIS または Apache を再起動するだけです。

問題は、システムに設定されている実際の PHP.INI が見つからないことです。

PHPオンラインパッケージダウンロード機能例

PHP 構成図

2 番目の図では、構成ドキュメントへのパスが示されています。クリックして見つけてください。頭がクラクラしてしまい、かなりの時間を無駄にしてしまいました。

PHP_ZIP 拡張ライブラリを開いたら、パッケージ化とダウンロードを開始できます。

$filename= date("YmdHis");
$zip = new ZipArchive();//使用本类,linux需开启zlib,windows需取消php_zip.dll前的注释
$zip->open($filename.".zip", ZipArchive::OVERWRITE); //$data 就是从数据库里面读出的数字
foreach( $data as $val){
   $attachfile = "E:\bysj\bysj".$val['fileaddr'].$val['filename']; //写硬路径,但建议用PHP环境变量
   $attachfile=iconv("UTF-8","GBK",$attachfile); //转码,是打包中文文档的关键
   $zip->addFile( $attachfile , basename($attachfile)); //压栈
}
$zip->close();//关闭
header("Content-type:text/html;charset=utf-8");//设置页面编号
header("Cache-Control: public");
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.".zip");

上記のコードは基本的にドキュメントのパッケージ化とダウンロードを実装でき、中国語のドキュメントをパッケージ化してダウンロードできないという問題も解決します。

この記事が PHP プログラミングのすべての人に役立つことを願っています。

PHP オンライン パッケージ ダウンロード関数の例に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。