用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3460|回复: 9
收起左侧

[HELP] CI文件上传怎么解决中文乱码问题呢?

[复制链接]
发表于 2012-8-23 19:23:04 | 显示全部楼层 |阅读模式
我原本是将上传的文件都采用随即数重命名,再保存进数据库

可是到了下载的时候发现,下载下来也是一堆随机数的文件名,根本看不懂

有没什么方法能既解决乱码又能保持文件名的可读性呢
发表于 2012-8-24 00:00:58 | 显示全部楼层
自己改一下类文件,我是改成了MD5的方式保存位文件名
 楼主| 发表于 2012-8-24 10:13:26 | 显示全部楼层
跟屁虫 发表于 2012-8-24 00:00
自己改一下类文件,我是改成了MD5的方式保存位文件名

MD5的方法我也想过,可是还是一堆类似乱码的文件名,看不懂的。有什么方法能在上传的时候重命名,下载的时候再回复原文件名呢?
发表于 2012-8-24 16:21:24 | 显示全部楼层
force_download 这个辅助函数可以的,要用数据库存中文文件名才行。

$data = file_get_contents("/path/to/photo.jpg"); // 读文件内容
$name = '裸照.jpg'; // 数据库存的中文~

force_download($name, $data);
发表于 2012-8-24 17:04:05 | 显示全部楼层
再加一个字段,存原文件名
发表于 2012-8-25 16:58:00 | 显示全部楼层
iconv
 楼主| 发表于 2012-8-27 11:01:49 | 显示全部楼层
moonster 发表于 2012-8-24 17:04
再加一个字段,存原文件名

关键是有一个问题,当上传文件名是中文时,会出现乱码
发表于 2012-8-27 22:47:12 | 显示全部楼层
把文件信息入库 在字段上加上 文件路径及中文名 大小类型之类的信息
发表于 2012-8-27 22:47:36 | 显示全部楼层
上传我都是md5处理之后 保存的
发表于 2012-9-21 10:12:24 | 显示全部楼层
上传 的时候 对name 进行转码
文件名及路径分开保存
下载前 重新合并

本版积分规则