用C#编写网站,在windows下运行上传文件到其他windows计算机下,用到ftp协议,如果要传输是不是还得配置下windows下网络配置?还有能不能用以下方法在windows运行网站上传文件到linux服务器下? 我写的代码如下,请高手纠错:
protected void Button1_Click(object sender, EventArgs e)
{
Upload(FileUpload1.PostedFile.FileName);
}
private void Upload(string filename)
{
FileInfo f = new FileInfo(filename);
string uri = "ftp://10.1.2.141/F:/"+f.Name; //ftp://IP地址/磁盘/文件名;
FtpWebRequest ftp;
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
ftp.Credentials = new NetworkCredential("",""); //用户名和密码设置为空.想匿名登录
ftp.KeepAlive = false;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
ftp.UseBinary = true;
ftp.ContentLength = f.Length;
byte[] buff = new byte[1024];
int c = 0;
FileStream fs = f.OpenRead();
try
{
Stream strm = ftp.GetRequestStream();
c = fs.Read(buff, 0, 1024);
while (c != 0)
{
strm.Write(buff, 0, c);
c = fs.Read(buff, 0, 1024);
}
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Upload(FileUpload1.PostedFile.FileName);
}
private void Upload(string filename)
{
FileInfo f = new FileInfo(filename);
string uri = "ftp://10.1.2.141/F:/"+f.Name; //ftp://IP地址/磁盘/文件名;
FtpWebRequest ftp;
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
ftp.Credentials = new NetworkCredential("",""); //用户名和密码设置为空.想匿名登录
ftp.KeepAlive = false;
ftp.Method = WebRequestMethods.Ftp.UploadFile;
ftp.UseBinary = true;
ftp.ContentLength = f.Length;
byte[] buff = new byte[1024];
int c = 0;
FileStream fs = f.OpenRead();
try
{
Stream strm = ftp.GetRequestStream();
c = fs.Read(buff, 0, 1024);
while (c != 0)
{
strm.Write(buff, 0, c);
c = fs.Read(buff, 0, 1024);
}
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
}
可能是因为ftp设置上有问题..这段程序我是看网上这么写而且成功才这么做的.FtpRequest和FtpResponse这2个东西,不太明白怎么使...
是这里出现问题了吧,一般情况下都不允许匿名登录的。