Owncloud中文目錄包裹下載
Owncloud提供私有雲端儲存環境的自由軟體解決方案,目前4.5版中文支援已經很完整,但是早期ZIP壓縮檔內的檔名不支援utf-8,所以使用ZIP格式下載整個目錄或多個檔案時大部分解縮軟體無法正確處理utf-8編碼的檔名,造成檔案目錄有中文亂碼問題。修改lib/files.php如下,可以將壓縮檔中的檔名改為以big-5編碼。
public static function zipAddDir($dir,$zip,$internalDir=''){
$dirname=basename($dir);$dirname=iconv("UTF-8", "Big-5", $dirname); // for utf-8
$zip->addEmptyDir($internalDir.$dirname);
$internalDir.=$dirname.='/';
$files=OC_Files::getdirectorycontent($dir);
foreach($files as $file){
$filename=$file['name'];
$file=$dir.'/'.$filename;
if(OC_Filesystem::is_file($file)){
$tmpFile=OC_Filesystem::toTmpFile($file);
OC_Files::$tmpFiles[]=$tmpFile;$filename=iconv("UTF-8", "Big-5", $filename); // for utf-8
$zip->addFile($tmpFile,$internalDir.$filename);}elseif(OC_Filesystem::is_dir($file)){
self::zipAddDir($file,$zip,$internalDir);
}
}
}---------------------------------------------------foreach($files as $file) {
$file=$dir.'/'.$file;
if(OC_Filesystem::is_file($file)) {
$tmpFile=OC_Filesystem::toTmpFile($file)
;
self::$tmpFiles[]=$tmpFile;
$u8filename=iconv("UTF-8", "Big-5", basename($file)); //for utf-8
$zip->addFile($tmpFile,$u8filename);
}elseif(OC_Filesystem::is_dir($file)) {
self::zipAddDir($file,$zip);
}
}2013/10/1補充http://www.bandicam.com/bandizip/是一套可以切換文字編碼的壓縮解壓縮軟體,使用bandizip就可以解開檔名為utf-8編碼的zip檔。- 参考:http://beckjottings.blogspot.tw/2012/12/owncloud.html
Owncloud中文目錄包裹下載的更多相关文章
- Linux 下幾種網芳/Samba 目錄的 mount 方式
Linux 下幾種網芳/Samba 目錄的 mount 方式,比較新的 Smaba 只能用 cifs 的 mount 方式. [smbmount] smbmount -o username=&qu ...
- php圖片中寫入字符串然後生成圖片下載到本地
<?php /** * 生成卡片得類 * Enter description here ... * @author perry * @time 2014-03-03 10:02:20 */ cl ...
- 入門必學NO.1 Android 初學特訓班(第四版) 目錄
第 01 章 敲開 Android 的開發大門工欲善其事,必先利其器,要學習 Android 應用程式,先取得功能強大的開發工具,就可讓學習事半功倍. 1.1 Android 是啥米?1.2 建構 A ...
- 【转】常用 Microsoft .NET Framework 各版本下載網址列表
研究] 常用 Microsoft .NET Framework 各版本下載網址列表 2014-05-23 僅列常用的 (IA64, Beta, hotfix, ... 不列) Microsoft .N ...
- 使用Ajax生成的Excel文件并下載
很久沒有寫文章啦,今天分享一個如何在ASP.NET MVC里使用Ajax下載生成文件的方法,以下只是個人心得: 大家都應該知道,在ASP.NET MVC里,如果通過Ajax調用后臺控制器時,可以返回一 ...
- 2013年的一些常用PHP資源整理下載
這些資源基本上都是一些免積分或只需要1個積分就能下載的資源,經過整理篩選最後分享給大家,希望大家喜歡: PHP手册(chm) http://download.csdn.net/detail/u0118 ...
- linux文件和目錄管理的基本命令命令
ls命令 作用:顯示目標列表或目錄的內容 語法:ls[選項][目錄或文件] -a:顯示指定目錄下所有子目錄與文件,包括隱藏文件 -l:顯示文件的詳細信息 -d: 顯示目錄 例:ls -dl cd命令 ...
- nodejs創建目錄命令mkdir失敗
Windows系統 學習nodejs創建目錄命令:mkdir var fs = require('fs'); fs.mkdir('./tmp/test',function (err) { if(err ...
- Q郵箱轉移自定義目錄中的郵件
1.之前在Q郵箱上建立了許多規則和收件箱,現在想統一用Mac上的郵局管理 2.Mac上會同步對應郵箱的自定義目錄,此時這些目錄便十分多餘礙眼 3.Q郵箱單頁顯示郵件數量上限是100,這意味著手動轉移十 ...
随机推荐
- sublime 生成网页头文件
1.普通HTML 输入html:xt然后按tab键即可生成如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional// ...
- python用parammiko模块实现linux的远程操作
parammiko 可以实现远程的带密码登录,解决ssh远程登陆需要交互的问题 (当然很多其他的,如tcl也可以).但这个用python做比较简单 1.parammiko 的安装 1.1.依赖模块 ...
- 重写扫雷(基于jQuery) 新手 有不足的地方敬请谅解
记得刚开始学习js的时候写过一次扫雷,一个下午的时间被计算搞死,整个头是晕乎. 入职后,蹭着空闲的时间随手写了一个扫雷. 直接上代码了 (function() { function module() ...
- Java容器详解
线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些类均在java.util包中.在Java中,容器的类型主要有:List.Set ...
- MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验【转】
一.环境Master(主机A):192.168.1.1Slave(主机B) :192.168.1.2 W-VIP(写入) :192.168.1.3 R-VIP(读取) :192.168.1.4 ...
- Android SwitchButton(滑动开关)
@RemoteView public class Button extends TextView { public Button(Context context) { this(context, nu ...
- 线程在WPF中的使用
项目中可能会有这样的需求,一直获取新的某个数据信息,但仍不影响其他的操作功能,这时就用到了线程,获取新数据放到线程中操作,对其他操作不产生影响,下面就以随机获取数组中项为例解说WPF中使用线程这一实例 ...
- divmod(a,b)函数
python每日一函数 - divmod数字处理函数 divmod(a,b)函数 中文说明: divmod(a,b)方法返回的是a//b(除法取整)以及a对b的余数 返回结果类型为tuple 参数: ...
- bzoj 3831 Little Bird (单调队列优化dp)
/*先贴个n*n的*/ #include<iostream> #include<cstdio> #include<cstring> #define maxn 100 ...
- C#学习(三)
通过类创建对象的过程称为类的实例化 匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型. 要将匿名类型或包含匿名类型的集合作为参数传递给某一方法,可将参数作 ...