2015-09-16 141 views
0

我试图通过FTP上传文件到UNIX服务器。但是,当我这样做时,文件名称是混乱的。通过FTP上传到Unix服务器加扰文件名

例如,test.txt变为PAVXVC〜8.TXT。

我在Rebex.Net.Sftp类中使用了PutFile方法。我在下面的方法做这个:

sftp.PutFile(file.FullName, destinationPath); 

在Linux服务器上,当目标路径的形式/文件名或路径/文件名,则该文件的名称被扰乱,它只是放置在目录的根目录下。但是,在Windows服务器上,按预期工作。

我不确定背后的原因 - 例如,它是否与编码(目前为ASCII)?

有没有明显的检查?

+0

为什么你添加c#标记,你用自己的c#程序上传了吗?你能显示你使用的代码吗?你可以使用其他程序比较结果和上传吗? –

+0

您使用的是什么FTP客户端?你有客户端或服务器端日志?您可以发布您的代码(如果您使用的是自己的FTP代码)或将问题移至[su](因为如果您不编程FTP,它在这里是无关紧要的)。 –

+0

当然 - 我已经添加了一些更多的细节,其实并没有太多。我们无法访问客户端日志,客户端服务器由第三方维护,并且他们没有特别有用。我想知道在Unix环境下是否有明显不同的方式。这可能只是一个防火墙问题,但我再次没有那么多的信息。 –

回答

-1

听起来好像你的ftp客户端正在向服务器提供旧的DOS风格的短文件名。如果你不想尝试一个不同的ftp客户端,你可以自己指定远程文件名:

put localfilename remotefilename 
+0

这对大文件名是有意义的,但是DOS短名不符合我所看到的。此外,cmd dir/x返回test.txt作为短名称,没有改动等,所以我不认为这是问题。 –

+0

你说得对,好点。当你明确指定目的地名称时会发生什么情况,因为它可能会缩小问题的位置,这仍然很有趣。您是使用通配符还是仅仅放置一个文件? – ehaymore

相关问题