我试图将文件上载到使用的代码基于this Microsoft ArticleFTP - 文件名不允许
我的代码FTP服务器看起来像这样用于测试目的:
string ftpUrl = "ftp://" + ftpSite + ftpPath + "test.txt";
//string ftpUrl = ftpSite;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpUrl);
request.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
request.Method = WebRequestMethods.Ftp.UploadFile;
StreamReader srcStream = new StreamReader(filePath);
byte[] fileContents = Encoding.UTF8.GetBytes(srcStream.ReadToEnd());
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
每次我试着上传文件,我从FTP服务器得到一个“Filename not allowed”错误。如果我使用像WS_FTP这样的FTP客户端应用程序,我可以很好地FTP同一个文件。
有关如何解决此问题的任何想法?我已经尝试设置主动/被动FTP模式,Keepalive和二进制模式,没有任何运气。
编辑
这是一个WinForms应用程序 - 文件名从打开文件对话框提示进来,FTP地址是基于App.Config中的设置。
您能否请求包含ftpUrl的完整结果? – Blueberry
您可以请包括ftpSite和ftpPath的来源以及您使用的是什么值? –
这是一个内部服务器,但如下格式:ftp://1.2.3.4/directory/subdirectory/test.txt – Tim