1、修改 data/CRMEntity.php 中的 uploadAndSaveFile($id,$module,$file_details)方法代码:
$upload_status = move_uploaded_file($filetmp_name,$upload_file_path.$current_id.”_”.$binFile);
修改为
$upload_status = move_uploaded_file($filetmp_name,$upload_file_path.$current_id.”_”.urlencode($binFile));
2、修改 modules/uploads/downloadfile.php
注释掉 39 行:
//$name = html_entity_decode($name, ENT_QUOTES, $default_charset);
在 39行后增加一行代码:
$name=urlencode($name);
在 41 行新增:
$toChineseName = iconv(“utf-8″,”gb2312”,$name);
将52 行
header(“Content-Disposition: attachment; filename=$name”);
修改为
header(“Content-Disposition: attachment; filename=$toChineseName”);
在服务器上存储将中文编码后的 UTF-8 字符串,这样可以避免在不同类型服务器上出现字符乱码,在下载文件的时候,将文件用 GB2312 编码,这样做的原因是,有时候火狐不能识别 E6%BC%94%E8%AE%B2.docx 这样的编码而造成文件名重名不正确。