C#把文件上传到服务器中的指定地址

 更新时间:2022年04月23日 11:40:22   作者:農碼一生  
这篇文章介绍了C#实现文件上传到服务器指定地址的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、建立连接

        public string connectFTP(string vPath, string vUID, string vPassword)
        {
            string errormsg = "";
           Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
                string dosLine = "net use " + vPath + " " + vPassword + " /user:" + vUID;
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }
                errormsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
            }
            catch (Exception ex)
            {
                //throw ex;
                //MessageBox.Show(ex.Message);
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }
            return errormsg;
        }

二、上传文件

        public void UploadFile(string vPath, string vUID, string vPassword, string vLocalPath, string file)
        {
            bool status = false;
            status = connectState(vPath, vUID, vPassword);
            if (status)
            {
                DirectoryInfo theFolder = new DirectoryInfo(vPath + "/" + file);
                string filename = vLocalPath;
                Transport(vLocalPath, vPath + "/" + file);
                //System.Diagnostics.Process.Start(vPath);
            }
            else
            {
                mesLog.Info("未能连接!");
                //MessageBox.Show("未能连接!");
            }
        }

三、连接状态

        public static bool connectState(string vPath, string vUID, string vPassword)
        {
            bool Flag = false;
            Process proc = new Process();
            try
            {
                proc.StartInfo.FileName = "cmd.exe";
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
                proc.StartInfo.CreateNoWindow = true;
                proc.Start();
                string dosLine = "net use " + vPath + " " + vPassword + " /user:" + vUID;
                proc.StandardInput.WriteLine(dosLine);
                proc.StandardInput.WriteLine("exit");
                while (!proc.HasExited)
                {
                    proc.WaitForExit(1000);
                }
                string errormsg = proc.StandardError.ReadToEnd();
                proc.StandardError.Close();
                if (string.IsNullOrEmpty(errormsg))
                {
                    Flag = true;
                }
                else
                {
                    throw new Exception(errormsg);
                }
            }
            catch (Exception ex)
            {
                //throw ex;
                //MessageBox.Show(ex.Message);
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }
            return Flag;
        }

四、传送

        public static void Transport(string src, string fileName)
        {
            FileStream inFileStream = new FileStream(src, FileMode.Open);
            FileStream outFileStream = new FileStream(fileName, FileMode.OpenOrCreate);

            byte[] buf = new byte[inFileStream.Length];
            int byteCount;

            while ((byteCount = inFileStream.Read(buf, 0, buf.Length)) > 0)
            {
                outFileStream.Write(buf, 0, byteCount);
            }

            inFileStream.Flush();
            inFileStream.Close();
            outFileStream.Flush();
            outFileStream.Close();

            File.Delete(src);
        }

到此这篇关于C#实现文件上传到服务器指定地址的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Unity常用命令模式详解

    Unity常用命令模式详解

    这篇文章主要为大家详细介绍了Unity常用命令模式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • WinForm使用DataGridView实现类似Excel表格的查找替换功能

    WinForm使用DataGridView实现类似Excel表格的查找替换功能

    这篇文章主要介绍了WinForm使用DataGridView实现类似Excel表格的查找替换功能,现在小编通过本文给大家分享查找替换实现过程,需要的朋友可以参考下
    2021-07-07
  • C#实现简单的RSA非对称加密算法示例

    C#实现简单的RSA非对称加密算法示例

    这篇文章主要介绍了C#实现简单的RSA非对称加密算法,结合实例形式分析了C#实现RSA加密的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • C#队列Queue多线程用法实例

    C#队列Queue多线程用法实例

    这篇文章主要介绍了C#队列Queue多线程用法,实例分析了队列的相关使用技巧,需要的朋友可以参考下
    2015-05-05
  • C#重写DataGridView

    C#重写DataGridView

    这篇文章主要为大家详细介绍了C#重写DataGridView的相关资料,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • C#基于Linq和反射实现数据持久化框架Xml4DB详解

    C#基于Linq和反射实现数据持久化框架Xml4DB详解

    在本篇文章里小编给大家整理的是关于C#基于Linq和反射实现数据持久化框架Xml4DB相关知识点,有需要的朋友们学习下。
    2019-08-08
  • C# 实现dataGridView选中一行右键出现菜单的示例代码

    C# 实现dataGridView选中一行右键出现菜单的示例代码

    这篇文章主要介绍了C# 实现dataGridView选中一行右键出现菜单,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)

    C# DataGridView中实现勾选存储数据和右键删除数据(示例代码)

    这篇文章主要介绍了C# DataGridView中实现勾选存储数据和右键删除数据的示例代码,通过示例代码给大家展示运行效果图,需要的朋友可以参考下
    2021-07-07
  • C#使用Dll的几种方法示例

    C#使用Dll的几种方法示例

    使用 DLL(动态链接库)是 C# 开发中常见的任务之一,DLL 文件包含可以在运行时加载的代码和数据,允许程序共享功能和资源,降低程序的内存占用并促进代码的复用,本篇文章将深入探讨 C# 中使用 DLL 的多种方法,并提供相关代码示例,需要的朋友可以参考下
    2024-10-10
  • C# using三种使用方法

    C# using三种使用方法

    这篇文章主要为大家详细介绍了C# using三种使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论