2015-09-16 192 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

相關問題