Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在asp.net c中使用唯一名称将文件上载到ftp#_C#_Asp.net_Upload_Ftp_Ftp Server - Fatal编程技术网

C# 在asp.net c中使用唯一名称将文件上载到ftp#

C# 在asp.net c中使用唯一名称将文件上载到ftp#,c#,asp.net,upload,ftp,ftp-server,C#,Asp.net,Upload,Ftp,Ftp Server,我写了下面的函数来上传文件到ftp。它工作正常,但我需要上传文件名。我认为ftp服务器应该写文件名作为回应,对吗 您只需要读取响应流 string fileName = new StreamReader(response.GetResponseStream()).ReadToEnd(); 或者更好 string fileName; using(s = new StreamReader(response.GetResponseStream())) { fileName = s.ReadT

我写了下面的函数来上传文件到ftp。它工作正常,但我需要上传文件名。我认为ftp服务器应该写文件名作为回应,对吗


您只需要读取
响应

string fileName = new StreamReader(response.GetResponseStream()).ReadToEnd();
或者更好

string fileName;
using(s = new StreamReader(response.GetResponseStream())) {
    fileName = s.ReadToEnd();
}

您只需要读取
响应

string fileName = new StreamReader(response.GetResponseStream()).ReadToEnd();
或者更好

string fileName;
using(s = new StreamReader(response.GetResponseStream())) {
    fileName = s.ReadToEnd();
}

我不知道你为什么要“赤裸裸”地使用
FtpWebRequest
,这可以通过使用
WebClient
的三个LOC来解决,它返回一个
字节[]
响应:

using (WebClient webClient = new WebClient())
{
    webClient.Credentials = new NetworkCredential(
                                ConfigurationManager.AppSettings["ftp_user"].ToString(),
                                ConfigurationManager.AppSettings["ftp_pass"].ToString());

    byte[] response = webClient.UploadFile("ftp://address.toserver.com",
                                           WebRequestMethods.Ftp.UploadFileWithUniqueName, 
                                           "PathToLocalFile");
    var fileName = Encoding.UTF8.GetString(response);
}

我不知道你为什么要“赤裸裸”地使用
FtpWebRequest
,这可以通过使用
WebClient
的三个LOC来解决,它返回一个
字节[]
响应:

using (WebClient webClient = new WebClient())
{
    webClient.Credentials = new NetworkCredential(
                                ConfigurationManager.AppSettings["ftp_user"].ToString(),
                                ConfigurationManager.AppSettings["ftp_pass"].ToString());

    byte[] response = webClient.UploadFile("ftp://address.toserver.com",
                                           WebRequestMethods.Ftp.UploadFileWithUniqueName, 
                                           "PathToLocalFile");
    var fileName = Encoding.UTF8.GetString(response);
}


我相信服务器应该用它选择的文件名来回答。@user35443你完全正确。编辑了我的答案。你从
文件名
中得到了什么?A
null
?@MehdiRostami使用监视请求,查看服务器是否使用anything@Yuval伊扎科夫,我试过小提琴,它不监视ftp协议。我尝试了两种不同的ftp协议,但在您的选择中,响应为空。在我的选择中,ftpresponse包括ftp消息和详细信息,ResponseStream为空。我认为服务器应该用它选择的文件名进行应答。@user35443您完全正确。编辑了我的答案。你从
文件名
中得到了什么?A
null
?@MehdiRostami使用监视请求,查看服务器是否使用anything@Yuval伊扎科夫,我试过小提琴,它不监视ftp协议。我尝试了两种不同的ftp协议,但在您的选择中,响应为空。在我的选择中,ftpresponse包括ftp消息和详细信息,ResponseStream为空。我认为服务器应该用它选择的文件名进行应答。@user35443您完全正确。编辑了我的答案。你从
文件名
中得到了什么?A
null
?@MehdiRostami使用监视请求,查看服务器是否使用anything@Yuval伊扎科夫,我尝试了fiddler,它不监视ftp协议。我尝试了两种不同的ftp,但在您选择的响应中为null。在我选择的ftpresponse中包括ftp消息和详细信息,ResponseStream为null。它返回null字符串值@梅赫迪罗斯塔米。。。这似乎是因为响应
是空的!它返回空字符串值@梅赫迪罗斯塔米。。。这似乎是因为响应
是空的!它返回空字符串值@梅赫迪罗斯塔米。。。这似乎是因为响应
是空的!