admin 管理员组文章数量: 1086019
2024年6月7日发(作者:计算机二级c++考试内容)
linux ftp服务器上传文件夹时提示550错误问题解决方法 标签: linux ftp服务器 550
中文文件夹上传错误 问题 分类: 计算机 2010-11-06 22:47
前几天在实验室搭配了一个linux环境下的vsftp服务器,配置好服务器运行后,客户
端老是提示错误550,折磨了好几天,在网上查看了很多文章都没有解决,最后安装了一个
pureftp服务器,也是提示错误,且错误代码为550,今天终于解决了这个问题,写下这篇日
志,以供碰到同样问题的人参考。
环境:linux redhat9.0,vsftp,pureftp.
症状:匿名上传单个文件成功,上传英文名的文件夹也是成功的,但是上传中文名的文
件夹时就提示错误,错误代码:550, 在vsftp服务器中提示:550,无法更换到目录;pureftp
服务器中提示无法找到目录,而且目录中的中文部分是????,但是都能上传文件和下载文件。
另外在linux下查看上传的文件时发现中文名字全是乱码。
分析原因:
经过测试和试验,分析得出出现上述症状的原因是linux系统不支持中文编码所致,当
有中文出现时,服务器不认识中文因而就以乱码出现,并提示文件目录不存在或不能进入等
错误提示。
解决办法:
1、解决显示中文的问题。
更改/etc/sysconfig/i18n 文件的内容:将文件中的变量值更改如下:
LC_CTYPE="zh_18030"
重启电脑或相关服务。
本机i18n文件的配置如下:
LANG="en_-8"
SUPPORTED="zh_18030:zh_CN:zh:en_-8:en_US:en"
SYSFONT="latarcyrheb-sun16"
LC_CTYPE="zh_18030"
详细原因请看文章:[转载] Linux中LANG,LC_ALL,local详解
2、屏蔽原代码中提示错误的对话框
按照步骤1的方法更新语言环境后,能显示中文和写入中方,但是本人发现语言编码还
是和windows的有区别,不能彻底解决语言编码的问题,期待高手解决。但本人利用另外
一种方法就是屏蔽掉因为不支持中文编码原因造成的错误提示,即550 failed to change
directory,方法如下:
解压缩安装文件,本人用的pureftp的下载地址为
/download/0001000/
打开解压缩后的文件夹中的src文件夹,对ftpd.c文件进行编辑,将第1937行开始的三
行代码注释掉,注释后的样式如下:
// if (SNCHECK(snprintf(buffer, sizeof buffer,
// MSG_CANT_CHANGE_DIR ": %s",
// dir, strerror(errno)), sizeof buffer)) {
_EXIT(EXIT_FAILURE);
// }
logfile(LOG_INFO, "%s", buffer);
addreply(550, "%s", buffer);
保存后再按照安装说明进行安装即可。
经过测试,没有任何问题。当然vsftpd的源码说不定也可以像这样进行更改从而解决语
言编码的问题。
版权声明:本文标题:linux ftp服务器上传文件夹时提示550错误问题解决方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1717719953a711506.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论