上網查了一下,在做create時可以加入參數PCLZIP_OPT_NO_COMPRESSION,以不加壓方式打包即可。
以網路上的範例來做修改
include_once('pclzip.lib.php');除了這點之外,最令我頭大的是若檔名含有中文,則下載下來的壓縮檔內檔名便會出現亂碼。雖然有在寫網頁的人都知道要避免使用中文檔名,但是一般使用者可是不會管你那麼多的。由於OS是linux介面,而且這邊使用的pclzip似乎沒有支援utf-8,所以才會產生亂碼的情況。這時候需要修改pclzip.lib.php的第2780行附近,function privAddFile內其中一段設定打包進壓縮檔檔案名稱的地方(按照上面的例子來說stored_filename就會是file.txt跟text.txt,因為路徑data被設定為去除了--PCLZIP_OPT_REMOVE_PATH, 'data')
$archive = new PclZip('archive.zip');
$v_list = $archive->create('data/file.txt,data/text.txt',
PCLZIP_OPT_NO_COMPRESSION,
PCLZIP_OPT_REMOVE_PATH, 'data',
PCLZIP_OPT_ADD_PATH, 'install');
if ($v_list == 0) {
die("Error : ".$archive->errorInfo(true));
}
$p_header['filename'] = $p_filename;這樣就可以看到中文囉!
// TBC : Removed $p_header['stored_filename'] = $v_stored_filename;
$p_header['stored_filename'] =
iconv('utf-8','big5',$p_filedescr['stored_filename']);
學藝不精,花了一天時間才解決問題...
--
參考網站
http://moodle.club.tw/moodle/mod/forum/discuss.php?d=1392
http://www.blueshop.com.tw/board/show.asp?subcde=BRD20091208184635ZIQ&fumcde=&PAGE=1
http://support.oss.org.tw/?q=node/147
http://itisjoe.pixnet.net/blog/post/14758894
http://modxcms.com/forums/index.php?topic=48191.0
沒有留言:
張貼留言