php的move_uploaded_file上传中文文件有时会失败 5

这个系统是一个文件管理系统,用apache+php+mysql,编码全部统一用utf8。部署的服务器是windowsserver2003。上传的目录中也有中文。普通的中文... 这个系统是一个文件管理系统,用apache+php+mysql,编码全部统一用utf8。部署的服务器是windows server 2003。上传的目录中也有中文。普通的中文目录、中文文件的操作(上传和下载)都没问题(虽然在服务器上看到都是乱码,但下载下来都正常)。但是,有些中文目录或者中文文件名的操作会失败,就是move_uploaded_file上传失败。如果move_uploaded_file中增加iconv(转utf8为gbk),就可以成功。但我不想这样改,因为改的地方太多了(目录和文件名都会保留到mysql中)。有什么改动最小的好办法吗? 展开
 我来答
阿刚弟
2012-11-15 · TA获得超过102个赞
知道答主
回答量:22
采纳率:0%
帮助的人:18.8万
展开全部
move_uploaded_file上传文件出错方式有很多,比如文件过大,比如上传文件夹无写权限,比如文件格式限制,你使用print_r(FILE)把上传文件的所有信息打印出来看看。看看错过码,找到错误就能定位!
追问
move_uploaded_file上传失败,只是返回false,没法知道错误原因吧。print_r打印的上传的完整路径(utf8)都没问题,只是有目录或文件名为中文而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangxibaiyi
2012-11-15 · 跟随风去旅行-伤心的歌
jiangxibaiyi
采纳数:3973 获赞数:14412

向TA提问 私信TA
展开全部
温馨建议:做网页,最好不要使用中文路径
也许开发的时候好记,但后续的麻烦,远远超出当初的偷懒带来的快乐。。。。
追问
可以不用中文路径,但中文文件名无法避免
追答
那怕用拼音也好啊
中文对于网页来说,每种编码下的中文字节是不同的,而英文和数字不会
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-11-15
展开全部
utf8 环境下,中文路径是忽悠出错的,
简单的改法就是改掉中文目录名。
追问
中文目录名可以改为英文,但中文文件名必须要支持,上传的部分中文文件名的文件还是会失败,如何解决这个。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
调涉L
2015-08-08 · TA获得超过1559个赞
知道答主
回答量:137
采纳率:0%
帮助的人:29.6万
展开全部
百度是个坑,做任务时看不见楼猪的提问内容,只看见标题。

只好再补充:
楼猪提供给move_file~函数的参数,决定php寻文件,因此移动时一定要保持编码一致。
所以你这没什么好方法,而且上传文件如果重名也不好办,最好是产生时间戳做文件名,然后在数据库里对应。
更多文件系统的编码问题,请参看
http://www.baidu.com/s?wd=NTFS%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E7%BC%96%E7%A0%81&tn=87048150_dg&ie=utf8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式