您的位置:首页 > 编程语言 > PHP开发

FTP中文文件上传

2015-03-11 18:48 579 查看
服务器上用Filazilla配置好FTP后,上传文件出现如下错误



明明所有权限都加给登录用户了,并且刚配置好的时候我在自己电脑上上传过一次,是可以的,结果在别人电脑上就出现上面的问题

查阅资料后发现可能是如下几个问题:

1. 文件太大或传输速度慢,传输过程中中断;

但是我上传的文件都很小,并且实验室内网速度很快,不太可能是这个问题。

2. 不支持中文文件名的文件上传

试了一下把中文名字改成英文名字,还真的好了!确定是中文文件名的问题。

解决办法:

1.

filezilla可以通过UTF-8的编码方式支持中文。但前提是也要使用支持UTF-8的ftp客户端软件,所以在IE中,选择编码为utf-8应当可以正常使用,但在资源管理器中好像确实不行,只能通过安装客户端软件解决。我服务器上的FileZilla Sever已经是最新版了,并且我放到FTP上的文件中文名都能正常显示,只是上传有问题。

2.使用Serv-U

Serv-U7默认采用UTF-8编码文件路径,而一些FTP客户端(如LeapFTP)默认不采用这一编码方式。

在默认情况下,Serv-U开放了一个名为OPTS UTF8的命令,可以在客户端(命令行或是客户端工具的命令发送菜单,如LeapFTP)发送“OPTS UTF8 OFF”在当前会话中关闭UTF-8编码(如果要重新启用,则用opts utf8 on) 不过更直接的方法还是在Serv-U中取消采用UTF-8编码格式,

方法如下:

1、登录Serv-U管理控制台,选择“限制和设置”中的“为域配置高级FTP命令设计和行为”。

2、在弹出页面的“FTP设置”选项卡中单击下边的“全局属性”按钮;

3、在“FTP命令属性”对话框的“高级选项”选项卡中,取消“对所有已收发的路径和文件名使用UTF-8编码”前的选项框,确定。

不过有还有两点需要补充一下:

第一、IE浏览器在默认设置下也采用UTF-8编码来收发URL,所以如果在客户端软件无法解析的时候,可以使用IE来临时使用FTP服务,当然,IE的FTP文件管理能力并不太强,如果经常使用,还是建议安装一个客户端;

第二、按本文配置之后,显示、下载与上传一般的以中文命名的文件已经没有问题。但是发现一些以中文命名且文件名非常长的文件,在上传时依然会出错(但如果已经在服务器上,下载是没有问题的),经查阅服务器的LOG,我觉得这是Serv-U在接收客户端发送的文件名的处理上的问题。 Serv-U 7.0也同样适用。
按照上述设置完,真的解决了问题。

3. 还有一个奇怪现象,就是FileZilla Server刚开启的时候客户端的连接速度很快,但过了一段时间再去连,打开登录界面的速度都会延时1分多钟,上传一个文件更是速度奇慢,去服务器上重启一下FileZilla Server就又变正常了,打开和上传速度又提上去了,这真让我头痛,本人才疏学浅,求各位识真相的高手不吝赐教,小弟感激不尽!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: