C#文件上传 急求:C# 基于WIN窗体的:如何将本地文件上传到服务器 ,望给出源代码,谢谢! 如将本地磁盘d盘的文件 2008.doc 上传到服务器192.168.10.2上的文件“上传文件”中,如何实现 望高手指点! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 到服务器上共享一个具有写入权限的文件夹,然后:File.Copy("d:\\2008.doc", @"\\192.168.10.2\\上传文件\2008.doc"); 你的程序是不是C/S模式?如果是,那就是client与server通信的问题了。如果是服务器上什么都没有,需要用过文件夹的方式传上去,我这里有现成代码,不需要先到服务器设置文件夹权限什么的,但也有个缺陷,那就是不能同时用其他账号通过文件夹的方式先打开服务器上的文件夹目录。 public static class NetworkFolderManager { private static List<string> _folderList = new List<string>(); public static bool IsNetworkFolder(string path) { if (string.IsNullOrEmpty(path)) { return false; } return path.StartsWith(@"\\"); } /// <summary> /// 创建到网络文件夹的链接 /// </summary> /// <param name="path"></param> /// <param name="user"></param> /// <param name="password"></param> /// <returns></returns> public static string CreateConnect(string path, string user, string password) { if (!IsNetworkFolder(path)) { return "不是网络文件夹"; } if (_folderList.Contains(path)) { return "链接已建立过"; } string createnetcommond = string.Format("net use \"{0}\" /user:\"{1}\" {2}", path, user, password); string message = OperateHelper.RunCmd(createnetcommond); _folderList.Add(path); return message; } /// <summary> /// 删除到网络文件夹的链接 /// </summary> /// <param name="path"></param> /// <param name="user"></param> /// <param name="password"></param> /// <returns></returns> public static string DeleteConnect(string path) { string createnetcommond = string.Format("net use \"{0}\" /delete", path); return OperateHelper.RunCmd(createnetcommond); } public static void DeleteAllConnect() { foreach (string path in _folderList) { DeleteConnect(path); } } } public static string RunCmd(string command) { //實例一個Process類,啟動一個獨立進程 Process p = new Process(); //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性: p.StartInfo.FileName = "cmd.exe"; //設定程序名 p.StartInfo.Arguments = "/c " + command; //設定程式執行參數 p.StartInfo.UseShellExecute = false; //關閉Shell的使用 p.StartInfo.RedirectStandardInput = true; //重定向標準輸入 p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出 p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出 p.StartInfo.CreateNoWindow = true; //設置不顯示窗口 p.Start(); //啟動 //p.StandardInput.WriteLine(command); //也可以用這種方式輸入要執行的命令 //p.StandardInput.WriteLine("exit"); //不過要記得加上Exit要不然下一行程式執行的時候會當機 return p.StandardOutput.ReadToEnd(); //從輸出流取得命令執行結果 } string path = string.Concat(@"\\", tbxSwiftServer.Text.Trim(), @"\c$\swiftport\KondorFtpRoot"); NetworkFolderManager.DeleteConnect(path); message = NetworkFolderManager.CreateConnect(path, account, tbxPWD.Text.Trim()); DirectoryInfo directInfo = new DirectoryInfo(path); if (directInfo.Exists) { message = ""; } else { message = "帐号无权访问中间服务器!"; }这是访问的代码的示例代码,它存在的问题,我已经在第一个回复说了,如果你能解决,也可以告诉我下。如果能解决你的问题,呵呵,分吗,你看着给吧:) 在你Connect成功后,你就可以访问服务器的目录,你用File.Copy就没问题了。和本地操作一样。 可以建立一个ftp在服务器上,然后使用ftp协议来传,这个ftp传输的代码可以在网上找下 6,7,8 楼的代码 每一个都需要用?代码有点看不懂~ 呵能解释下代码是什么意思么 谢了 对了 我是CSDN新手 怎么给分给你 结贴就可以了,如果另外给分的,帖子可以加分啊,加完分结贴给我分就可以了啊。其实代码做法很简单,通过调用cmd的命令达到连接远程服务器的目的。然后就可以用File来访问远程文件夹了。 不是有那种FILEUPLOAD的自带控件吧 串口数据的接收 access的连接字符串出错 ,帮忙看看!! C#中结构体的内存大小与分配问题~求解 WinForm中DataGridView 排序问题 使用C#怎样在一定范围的数中随即选择出一个数,谢谢 c#与asp.net 关系 为什么会查找不到相应tabPage?在线等! 如何从屏幕或文本编辑区取词并传递到另一个程序 vs2005中webbrowser问题 使用JavascriptSerializer生成如下json数据 C# 广告~~!!! 再度向各位大侠请教:用Response.Write导出word中遇到的问题 。等了N久了
如果是服务器上什么都没有,需要用过文件夹的方式传上去,我这里有现成代码,不需要先到服务器设置文件夹权限什么的,但也有个缺陷,那就是不能同时用其他账号通过文件夹的方式先打开服务器上的文件夹目录。
public static class NetworkFolderManager
{
private static List<string> _folderList = new List<string>();
public static bool IsNetworkFolder(string path)
{
if (string.IsNullOrEmpty(path))
{
return false;
}
return path.StartsWith(@"\\");
} /// <summary>
/// 创建到网络文件夹的链接
/// </summary>
/// <param name="path"></param>
/// <param name="user"></param>
/// <param name="password"></param>
/// <returns></returns>
public static string CreateConnect(string path, string user, string password)
{
if (!IsNetworkFolder(path))
{
return "不是网络文件夹";
}
if (_folderList.Contains(path))
{
return "链接已建立过";
}
string createnetcommond = string.Format("net use \"{0}\" /user:\"{1}\" {2}", path, user, password);
string message = OperateHelper.RunCmd(createnetcommond);
_folderList.Add(path);
return message;
} /// <summary>
/// 删除到网络文件夹的链接
/// </summary>
/// <param name="path"></param>
/// <param name="user"></param>
/// <param name="password"></param>
/// <returns></returns>
public static string DeleteConnect(string path)
{
string createnetcommond = string.Format("net use \"{0}\" /delete", path);
return OperateHelper.RunCmd(createnetcommond);
} public static void DeleteAllConnect()
{
foreach (string path in _folderList)
{
DeleteConnect(path);
}
}
}
{
//實例一個Process類,啟動一個獨立進程
Process p = new Process(); //Process類有一個StartInfo屬性,這個是ProcessStartInfo類,包括了一些屬性和方法,下面我們用到了他的幾個屬性: p.StartInfo.FileName = "cmd.exe"; //設定程序名
p.StartInfo.Arguments = "/c " + command; //設定程式執行參數
p.StartInfo.UseShellExecute = false; //關閉Shell的使用
p.StartInfo.RedirectStandardInput = true; //重定向標準輸入
p.StartInfo.RedirectStandardOutput = true; //重定向標準輸出
p.StartInfo.RedirectStandardError = true; //重定向錯誤輸出
p.StartInfo.CreateNoWindow = true; //設置不顯示窗口 p.Start(); //啟動 //p.StandardInput.WriteLine(command); //也可以用這種方式輸入要執行的命令
//p.StandardInput.WriteLine("exit"); //不過要記得加上Exit要不然下一行程式執行的時候會當機 return p.StandardOutput.ReadToEnd(); //從輸出流取得命令執行結果
}
NetworkFolderManager.DeleteConnect(path);
message = NetworkFolderManager.CreateConnect(path, account, tbxPWD.Text.Trim());
DirectoryInfo directInfo = new DirectoryInfo(path);
if (directInfo.Exists)
{
message = "";
}
else
{
message = "帐号无权访问中间服务器!";
}
这是访问的代码的示例代码,它存在的问题,我已经在第一个回复说了,如果你能解决,也可以告诉我下。
如果能解决你的问题,呵呵,分吗,你看着给吧:)
这个ftp传输的代码可以在网上找下
能解释下代码是什么意思么 谢了 对了 我是CSDN新手 怎么给分给你
其实代码做法很简单,通过调用cmd的命令达到连接远程服务器的目的。
然后就可以用File来访问远程文件夹了。