a306211321 发表于 2012-8-23 19:23:04

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

我原本是将上传的文件都采用随即数重命名,再保存进数据库

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

有没什么方法能既解决乱码又能保持文件名的可读性呢

跟屁虫 发表于 2012-8-24 00:00:58

自己改一下类文件,我是改成了MD5的方式保存位文件名

a306211321 发表于 2012-8-24 10:13:26

跟屁虫 发表于 2012-8-24 00:00 static/image/common/back.gif
自己改一下类文件,我是改成了MD5的方式保存位文件名

MD5的方法我也想过,可是还是一堆类似乱码的文件名,看不懂的。有什么方法能在上传的时候重命名,下载的时候再回复原文件名呢?

sunboat 发表于 2012-8-24 16:21:24

force_download 这个辅助函数可以的,要用数据库存中文文件名才行。

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

force_download($name, $data);

moonster 发表于 2012-8-24 17:04:05

再加一个字段,存原文件名

gauspican 发表于 2012-8-25 16:58:00

iconv

a306211321 发表于 2012-8-27 11:01:49

moonster 发表于 2012-8-24 17:04 static/image/common/back.gif
再加一个字段,存原文件名

关键是有一个问题,当上传文件名是中文时,会出现乱码

seekmas 发表于 2012-8-27 22:47:12

把文件信息入库 在字段上加上 文件路径及中文名 大小类型之类的信息

seekmas 发表于 2012-8-27 22:47:36

上传我都是md5处理之后 保存的

暗夜星辰 发表于 2012-9-21 10:12:24

上传 的时候 对name 进行转码
文件名及路径分开保存
下载前 重新合并
页: [1]
查看完整版本: CI文件上传怎么解决中文乱码问题呢?