求教C#实现FTP上传的解决方法(最后100分) C#用FTP实现文件上传到指定服务器,我下了几个源码和看了CSDN上网友的一些DD都没能解决,最好能给个源码看看(PS:如果是没经过测试的就不要贴了) 谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用 edtFTPnet 挺好的。 private static void ftpFile(string sourcefile,string destination) { string host = System.Configuration.ConfigurationSettings.AppSettings["ftphost"]; int port = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ftport"]); string user = System.Configuration.ConfigurationSettings.AppSettings["ftpuser"]; string password = System.Configuration.ConfigurationSettings.AppSettings["ftppassword"]; password = System.Web.HttpUtility.UrlDecode(password); string directory = System.Configuration.ConfigurationSettings.AppSettings["ftpdirectory"]; FTPClient ftp = new FTPClient(); ftp.RemoteHost = host; ftp.ControlPort = port; try { ftp.Connect(); ftp.Login(user, password); ftp.TransferType = FTPTransferType.BINARY; ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ChDir(directory); ftp.Put(sourcefile,destination,false); ftp.Quit(); } catch(Exception e) { //Log.WriteLog("ItemBigType","GenratePage",new string[] {"cateid",this._cateid.Trim()}); throw new ApplicationException(e.Message,e); } } http://www.sunmast.com/soft/FtpClient.zip 速马非常感谢你的帮助,但是使用还是有问题程序如下:........using Sunmast.Net.FtpClient;using System.Net.Sockets;using System.IO;........try { FtpConnection conn = new FtpConnection("ftp://ly0000:[email protected]/"); FtpFile file = new FtpFile(conn,"1.txt"); Socket soc = file.OpenWrite(TransMode.OverWrite); FileStream fs = new FileStream(@"D:\系统开发\ftptest\ftptest\bin\Debug\1.txt",FileMode.Open); byte[] bytes = new byte[512]; int i = 512; while(i == 512) { i = fs.Read(bytes,0,512); soc.Send(bytes,0,i,SocketFlags.None); } soc.Close(); conn.ReadReply(); } catch(Exception error) { MessageBox.Show(error.Source+error.Message); }提示错误信息:FtpClient550/1.txt:Access is denied我用cuteftp完全没问题,我被弄晕了.............. private static void ftpFile(string sourcefile,string destination) { string host = System.Configuration.ConfigurationSettings.AppSettings["ftphost"]; int port = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ftport"]); string user = System.Configuration.ConfigurationSettings.AppSettings["ftpuser"]; string password = System.Configuration.ConfigurationSettings.AppSettings["ftppassword"]; password = System.Web.HttpUtility.UrlDecode(password); string directory = System.Configuration.ConfigurationSettings.AppSettings["ftpdirectory"]; FTPClient ftp = new FTPClient(); ftp.RemoteHost = host; ftp.ControlPort = port; try { ftp.Connect(); ftp.Login(user, password); ftp.TransferType = FTPTransferType.BINARY; ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ChDir(directory); ftp.Put(sourcefile,destination,false); ftp.Quit(); } catch(Exception e) { //Log.WriteLog("ItemBigType","GenratePage",new string[] {"cateid",this._cateid.Trim()}); throw new ApplicationException(e.Message,e); } } 楼上的兄弟代码不能用....FTPClient命名空间? 我这里有一套东西,PowerTCP FTP for .NET 。控件自带有demo的,有源码。控件我试用过,很好用,现在跑着的程序都有几套了。。 需要的话联系我,肯定解决你的问题, [email protected] 最简单的方法是用ftp命令,或用ftp类,在www.codeproject.com/csharp/ftplibrary.asp有一个 sql2005同时向三张表添加数据的存储过程怎么写? 哪有CRYSTAL REPORTS 9水晶报表设计与开发大全 的电子版呀 如何在一个窗体中打开一个新窗体,在新窗体修改数据后刷新原窗体数据 Winform下的水晶报表单击表头排序 C#关闭数据库 一个关于字符串空值的错误,大家帮忙看看 C#小算法例题。 问各位大大一个关于数据绑定的问题: 存储过程 c#的前景! 如何判断CheckBoxList中SelectedIndexChanged事件是哪个checkbox引发的 .NET == 开源【从Reflector软件反编译.NET,原码相似度99%】说起~
{
string host = System.Configuration.ConfigurationSettings.AppSettings["ftphost"];
int port = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ftport"]);
string user = System.Configuration.ConfigurationSettings.AppSettings["ftpuser"];
string password = System.Configuration.ConfigurationSettings.AppSettings["ftppassword"];
password = System.Web.HttpUtility.UrlDecode(password);
string directory = System.Configuration.ConfigurationSettings.AppSettings["ftpdirectory"];
FTPClient ftp = new FTPClient();
ftp.RemoteHost = host;
ftp.ControlPort = port; try
{
ftp.Connect();
ftp.Login(user, password); ftp.TransferType = FTPTransferType.BINARY;
ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ChDir(directory); ftp.Put(sourcefile,destination,false); ftp.Quit();
}
catch(Exception e)
{
//Log.WriteLog("ItemBigType","GenratePage",new string[] {"cateid",this._cateid.Trim()});
throw new ApplicationException(e.Message,e);
}
}
程序如下:
........
using Sunmast.Net.FtpClient;
using System.Net.Sockets;
using System.IO;
........
try
{
FtpConnection conn = new FtpConnection("ftp://ly0000:[email protected]/");
FtpFile file = new FtpFile(conn,"1.txt");
Socket soc = file.OpenWrite(TransMode.OverWrite);
FileStream fs = new FileStream(@"D:\系统开发\ftptest\ftptest\bin\Debug\1.txt",FileMode.Open);
byte[] bytes = new byte[512];
int i = 512;
while(i == 512)
{
i = fs.Read(bytes,0,512);
soc.Send(bytes,0,i,SocketFlags.None);
}
soc.Close();
conn.ReadReply();
}
catch(Exception error)
{
MessageBox.Show(error.Source+error.Message);
}提示错误信息:FtpClient550/1.txt:Access is denied
我用cuteftp完全没问题,我被弄晕了..............
{
string host = System.Configuration.ConfigurationSettings.AppSettings["ftphost"];
int port = int.Parse(System.Configuration.ConfigurationSettings.AppSettings["ftport"]);
string user = System.Configuration.ConfigurationSettings.AppSettings["ftpuser"];
string password = System.Configuration.ConfigurationSettings.AppSettings["ftppassword"];
password = System.Web.HttpUtility.UrlDecode(password);
string directory = System.Configuration.ConfigurationSettings.AppSettings["ftpdirectory"];
FTPClient ftp = new FTPClient();
ftp.RemoteHost = host;
ftp.ControlPort = port; try
{
ftp.Connect();
ftp.Login(user, password); ftp.TransferType = FTPTransferType.BINARY;
ftp.ConnectMode = FTPConnectMode.ACTIVE; ftp.ChDir(directory); ftp.Put(sourcefile,destination,false); ftp.Quit();
}
catch(Exception e)
{
//Log.WriteLog("ItemBigType","GenratePage",new string[] {"cateid",this._cateid.Trim()});
throw new ApplicationException(e.Message,e);
}
}
需要的话联系我,肯定解决你的问题, [email protected]