public void Upload3(string path,string filename)
{
FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create("ftp://ftpserver/" + filename);
ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
//这个属性设置关系不大,主要看实际上传文件的代码是怎么写的。
ftpWebRequest.UseBinary = true;
ftpWebRequest.KeepAlive = false;
// ftpWebRequest.Credentials = new NetworkCredential("登录用户名", "登录密码");
FileStream fs = File.OpenRead(path);
int size = 2048;
byte[] buffer = new byte[size];
Stream stream = ftpWebRequest.GetRequestStream();
int dataReader;
do
{
dataReader = fs.Read(buffer, 0, size);
stream.Write(buffer, 0, dataReader);
} while (dataReader == size);
stream.Close();
fs.Close();
FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
Console.Write("上传文件完成,状态:" + ftpWebResponse.StatusDescription);
ftpWebResponse.Close();
}
//上传二进制文件
public void Upload2(string path, string filename)
{
FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create("ftp://192.168.1.105/" + filename);
ftpWebRequest.Method = WebRequestMethods.Ftp.UploadFile;
//这个属性设置关系不大,主要看实际上传文件的代码是怎么写的。
ftpWebRequest.UseBinary = true;
ftpWebRequest.KeepAlive = false;
// ftpWebRequest.Credentials = new NetworkCredential("登录用户名", "登录密码");
BinaryReader br = new BinaryReader(File.OpenRead(path), Encoding.UTF8);
int size = 1024;
byte[] buffer = br.ReadBytes(size);
BinaryWriter bw = new BinaryWriter(ftpWebRequest.GetRequestStream());
while (buffer.Length > 0)
{
bw.Write(buffer);
buffer = br.ReadBytes(size);
}
bw.Close();
br.Close();
FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
Console.Write("上传文件完成,状态:" + ftpWebResponse.StatusDescription);
ftpWebResponse.Close();
}
/// <summary>
///
/// </summary>
/// <param name="path">本地文件路径</param>
/// <param name="uploadFileName">上传到ftp server后的文件名</param>
/// <returns></returns>
public bool Upload(string path, string uploadFileName)
{
string url = "ftp://ftpserver/" + uploadFileName;
if (!Conn(url))
{
return false;
}
request.Method = WebRequestMethods.Ftp.UploadFile;
//Encoding.Default:获取当前操作系统ANSI代码页的编码。以避免中文乱码。
StreamWriter sw = new StreamWriter(request.GetRequestStream(),Encoding.Default);
StreamReader sr = new StreamReader(path,Encoding.Default);
sw.Write(sr.ReadToEnd());
sr.Close();
sw.Close();
FtpWebResponse ftpWebResponse = (FtpWebResponse)request.GetResponse();
Console.WriteLine(ftpWebResponse.StatusDescription);
return true;
}