C#FTP到的FileZilla服务器的文件名保存问题

问题描述:

每当我使用此代码它上传JPEG,但JPEG文件名称为STOR在服务器上没有扩展名。C#FTP到的FileZilla服务器的文件名保存问题

任何想法,为什么发生这种情况或如何从我的C#桌面应用程序保存到我的FileZilla FTP服务器时更改文件名?

这里是基本的代码,名称已被以保护无辜的变化;)

WebClient client = new WebClient(); 
client.Credentials = new NetworkCredential("username", "password"); 
client.BaseAddress = "ftp://mysite.com"; 
client.UploadFile(WebRequestMethods.Ftp.UploadFile, "C:\mypics\pic1.jpg"); 

尝试

client.UploadFile(remoteName, WebRequestMethods.Ftp.UploadFile , @"C:\mypics\pic1.jpg"); 

WebRequestMethods.Ftp.UploadFile是一个字符串,其值正好是STOR所以编译器是假设你正在使用的client.UploadFile(远程名称,localName创建)重载这就是为什么你的文件名为STOR

+0

这就是真正的答案! – 2012-04-12 10:44:51

+0

我被撕成了哪个答案是最好的。你的回答是正确的,解释了为什么会发生,以及如何解决它。 – GregH 2012-04-13 12:33:30

@sgmoore回答了这个问题。您需要正确使用方法:

client.UploadFile("pic1.jpg", "C:\mypics\pic1.jpg"); 

第一个参数是远程文件名,第二个是到本地文件的路径。你也可以在.net中尝试一些其他的ftp客户端实现(无论如何,FTP在.NET标准库中的实现都很糟糕),我已经使用了ftplib,它的工作很好。

+0

很好的答案!我必须先检查谁回答是公平的。 如果可以的话,我会给你检查! – GregH 2012-04-13 12:35:58

+0

@GregH没关系,我完全同意sgmoore是第一个给出正确答案的人,无论如何它毕竟只是一些虚拟分数,我没有把它当回事:) – 2012-04-13 14:47:14