【发布时间】:2014-04-30 06:29:26
【问题描述】:
我正在使用从 MSDN 获得的这段代码:
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://a.b.com/home/grad/G140315METST-HT001.jpg");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("user", "pass");
StreamReader sourceStream = new StreamReader("G140315METST-HT001.jpg");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
但我收到此错误:
远程服务器返回错误:(553) 文件名不允许。
在这条线上Stream requestStream = request.GetRequestStream();
怎么办?
【问题讨论】:
-
您是否尝试过使用普通的 FTP 客户端上传相同的文件?也许服务器真的不允许这个文件名...
-
是的,我使用了 filezila,它奏效了。
-
路径是否有效?我的意思是服务器上存在 home 和 grad 文件夹
-
@manishDalal> 是的,它存在。
-
使用 FileZilla 连接时,会打开哪个文件夹?
标签: c# file-upload ftp