jar檔打包 php zip打包下載文件

WBOY
發布: 2016-07-28 08:30:19
原創
1469 人瀏覽過
<ol>
<li>将文件打包成zip格式</li>
<li>下载文件的功能</li>
</ol><p>要点解析:</p><ol><li>这里我采用的是php自带的ZipArchive类</li></ol><p>    a) 我们只需要new一个ZipArchive对象,然后使用open方法创建一个zip文件,接着使用addFile方法,将要打包的文件写入刚刚创建的zip文件中,最好还得记得关闭该对象。</p><p>    b) 注意点:使用open方法的时候,第二个参数$flags是可选的,$flags用来指定对打开的zip文件的处理方式,共有四种情况</p><p>                    i.     <tt>ZIPARCHIVE::OVERWRITE</tt> 总是创建一个新的文件,如果指定的zip文件存在,则会覆盖掉</p><p>                      ii.    <tt>ZIPARCHIVE::CREATE</tt>     如果指定的zip文件不存在,则新建一个</p><p><tt>              iii.  </tt><tt>ZIPARCHIVE::EXCL      </tt><tt>如果指定的zip文件存在,则会报错   </tt></p><p><tt>               iv.  </tt><tt>ZIPARCHIVE::CHECKCON</tt></p>
登入後複製
$nid = <span>intval</span>($this-><span>_request</span>->getParam(<span>'nid'</span>))<span>;
</span>$filelist = $this-><span>model</span>->getOverenter($nid)<span>;
</span><span>foreach </span>($filelist <span>as </span>$f) {
    $row[<span>'file'</span>] = <span>ROOT</span>.<span>'/public/upload/logo/'</span>.$f[<span>'ne_file'</span>]<span>;
</span>$row[<span>'name'</span>] = $f[<span>'es_name'</span>]<span>;
</span>$ext = <span>explode</span>(<span>'.'</span><span>,</span>$f[<span>'ne_file'</span>])<span>;
</span>$row[<span>'ext'</span>] = $ext[<span>1</span>]<span>;
</span>$fileNameArr[]=$row<span>;
</span>}
$name = <span>date</span>(<span>'YmdHis'</span>).<span>'.zip'</span><span>;
</span>$filename = <span>ROOT</span>.<span>"/public/upload/"</span>.$name<span>; </span><span><em>// </em></span><span><em>最终生成的文件名(含路径)
</em></span>$zip = <span>new </span>ZipArchive ()<span>;
</span><span>if </span>(!<span>file_exists</span>($filename)) {
    $zip->open($filename<span>, </span><span>ZipArchive</span>::<span>CREATE</span>)<span>;</span><span><em>//</em></span><span><em>创建一个空的</em></span><span><em>zip</em></span><span><em>文件
</em></span><span><em></em></span><span>for </span>($i = <span>0</span><span>; </span>$i < <span>count</span>($fileNameArr)<span>; </span>$i&#43;&#43;) {
        $zip->addFile($fileNameArr[$i][<span>'file'</span>]<span>, </span><span>iconv</span>( <span>'UTF-8'</span><span>,</span><span>'GB2312'</span><span>, </span>$fileNameArr[$i][<span>'name'</span>]).<span>'.'</span>.$fileNameArr[$i][<span>'ext'</span>])<span>;
</span>}
    $zip->close()<span>;
</span><span><em>//</em></span><span><em>打开文件
</em></span><span><em></em></span><span>if</span>(<span>file_exists</span>($filename)){
        $file = <span>fopen</span>($filename<span>,</span><span>"r"</span>)<span>;
</span>Header(<span>"Content-type: application/octet-stream"</span>)<span>;
</span>Header(<span>"Accept-Ranges: bytes"</span>)<span>;
</span>Header(<span>"Accept-Length: "</span>.<span>filesize</span>($filename))<span>;
</span>Header(<span>"Content-Disposition: attachment; filename="</span>.$name)<span>;
</span><span>echo </span><span>fread</span>($file<span>, </span><span>filesize</span>($filename))<span>;
</span>$buffer=<span>1024</span><span>;
</span><span>while </span>(!<span>feof</span>($file)) {
            $file_data=<span>fread</span>($file<span>,</span>$buffer)<span>;
</span><span>echo </span>$file_data<span>;
</span>}
        <span>fclose</span>($file)<span>;
</span>}<span>else </span>{
        <span>echo </span><span>"<script>alert('file not exists!');</script>"</span><span>;
</span>}
}
<span>unlink</span>($filename)<span>;
</span><span>exit</span>()<span>;</span>
登入後複製

以上就介紹了jar檔案打包 php zip打包下載文件,包含了jar文件打包的內容,希望對PHP教學有興趣的朋友有幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!