将所有文件从我的计算机写入到Ftp服务器(另一台计算机) [英] Writing All the files from my machine to an Ftp Server (Another Machine)

查看:78
本文介绍了将所有文件从我的计算机写入到Ftp服务器(另一台计算机)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,

嘿,我试图将所有文件从本机上的目录复制到FTP服务器上的另一个目录(FTP服务器上不存在要将文件复制到的文件夹)...我遇到了异常---- > 无法发送具有这种动词类型的内容主体..流reqStream = request.GetRequestStream();

这是我的代码,请帮我解决问题.

Hello Guys,

Hey im trying to copy all the files from a directory on my machine to another directory on the FTP server(The folder to which i want to copy my files doesnot exist on the ftp server)...Im getting an exception ----> Cannot send a content-body with this verb-type.Here---> Stream reqStream = request.GetRequestStream();

Here is my code please help me out fellas.

FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("ftp://192.168.1.119/images");
 request.Credentials = new NetworkCredential("Rahul Middha","jkd");
request.Method = WebRequestMethods.Ftp.MakeDirectory;
            request.UsePassive = true;
            request.UseBinary = true;
            request.KeepAlive = false;


            DirectoryInfo di = new DirectoryInfo("C:\\Datacap\\Demo\\images");
            FileInfo[] files=null;
            if (di.Exists)
            {
                files = di.GetFiles("*.TIF");
            }
            FileStream fs = null;
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            foreach (FileInfo fi in files)
                {

                    fs = fi.OpenRead();
                    fs.Read(buff, 0, buff.Length);
                }

            fs.Close();

            Stream reqStream = request.GetRequestStream();
            reqStream.Write(buff, 0, buff.Length);
            reqStream.Close();



[Edit(zorgoz):添加了代码块,删除了喊叫声]



推荐答案

私有静态void UploadViaFtp(string pWebsitePath,string pFileName)
{
字符串sFtpaddress = ConfigurationSettings.AppSettings ["ftpaddress"].ToString();
字符串sFtpusrname = ConfigurationSettings.AppSettings ["ftpusrname"].ToString();
字符串sFtppwd = ConfigurationSettings.AppSettings ["ftppwd"].ToString();



FtpWebRequest请求=(FtpWebRequest)WebRequest.Create(sFtpaddress +"/" + pFileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials =新的NetworkCredential(sFtpusrname,sFtppwd);


StreamReader sourceStream =新的StreamReader(pWebsitePath + pFileName);
byte [] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;

流requestStream = request.GetRequestStream();
requestStream.Write(fileContents,0,fileContents.Length);
requestStream.Close();

FtpWebResponse响应=(FtpWebResponse)request.GetResponse();

Console.WriteLine(上传文件完成,状态{0}",response.StatusDescription);

response.Close();

}
private static void UploadViaFtp(string pWebsitePath, string pFileName)
{
string sFtpaddress = ConfigurationSettings.AppSettings["ftpaddress"].ToString();
string sFtpusrname = ConfigurationSettings.AppSettings["ftpusrname"].ToString();
string sFtppwd = ConfigurationSettings.AppSettings["ftppwd"].ToString();



FtpWebRequest request = (FtpWebRequest)WebRequest.Create(sFtpaddress + "/" + pFileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(sFtpusrname, sFtppwd);


StreamReader sourceStream = new StreamReader(pWebsitePath + pFileName);
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();

}


这篇关于将所有文件从我的计算机写入到Ftp服务器(另一台计算机)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆