c#将本地文件上传至服务器(内网)

            //连接
                    string serverFolder = @"\\192.168.1.26\Invoice";//服务器的共享文件夹路径
                    string PWD = "666";//远程服务器密码
                    status = connectState(serverFolder, "Administrator", PWD);
                    if (status)
                    {
                        //共享文件夹的目录
                        DirectoryInfo theFolder = new DirectoryInfo(serverFolder);
                        string filename = theFolder.ToString();
                        //执行方法
                        if (File.Exists(serverFolder + @"\" + str_InvoiceName))//远程服务器上存在次文件那么下载,否则会报系统错误
                        {
                            TransportRemoteToLocal(destinationFile, serverFolder + @"\", str_InvoiceName);    //实现将远程服务器文件写入到本地
                        }
                        //string destinationFile = Path_Folder + "\\" + str_InvoiceName.Remove(0, 17);
                        //file.CopyTo(destinationFile, true);
                        ////File.Copy(sourceFile, "");
                    }
                    else
                    {
                        DevExpress.XtraEditors.XtraMessageBox.Show("不在内网,下载Invoice失败!", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

通过CMD连接远程服务器的方法

 /// <summary>
        /// 连接远程共享文件夹
        /// </summary>
        /// <param name="path">远程共享文件夹的路径</param>
        /// <param name="userName">用户名</param>
        /// <param name="passWord">密码</param>
        /// <returns></returns>
        public static bool connectState(string path, string userName, string passWord)
        {
            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();
                proc.StandardInput.WriteLine("net use * /del /y");
                string dosLine = "net use " + path + " " + passWord + " /user:" + userName;
                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;
            }
            finally
            {
                proc.Close();
                proc.Dispose();
            }
            return Flag;
        }
   
将远程服务器文件写入到本地的方法
        /// <summary>
        /// 从远程服务器下载文件到本地
        /// </summary>
        /// <param name="src">下载到本地后的文件路径,包含文件的扩展名</param>
        /// <param name="dst">远程服务器路径(共享文件夹路径)</param>
        /// <param name="fileName">远程服务器(共享文件夹)中的文件名称,包含扩展名</param>
        public static void TransportRemoteToLocal(string src, string dst, string fileName)  //src:下载到本地后的文件路径     dst:远程服务器路径    fileName:远程服务器dst路径下的文件名
        {
            if (!Directory.Exists(dst))
            {
                Directory.CreateDirectory(dst);
            }
            dst = dst + fileName;
            FileStream inFileStream = new FileStream(dst, FileMode.Open);    //远程服务器文件  此处假定远程服务器共享文件夹下确实包含本文件,否则程序报错  

            FileStream outFileStream = new FileStream(src, 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();

        }

原文地址:https://www.cnblogs.com/evanmemo/p/8492441.html

时间: 2024-10-02 11:44:53

c#将本地文件上传至服务器(内网)的相关文章

C# winform把本地文件上传到服务器上,和从服务器上下载文件

昨天在做项目过程中遇到需要把本地文件上传到服务器上的问题,在这里记录一下,方便大家互相学习! /// <summary> /// 上传文件方法/// </summary> /// <param name="filePath">本地文件所在路径(包括文件)</param> /// <param name="serverPath">文件存储服务器路径(包括文件)</param> public voi

借助XShell,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器。

rz 是将window文件传到linux服务器上,到执行rz命令的目录 sz 可以将linux文件发送到windows上,可以选择目录. https://www.google.com/ncr 登录一下会有惊喜的 ubuntu 安装 shadowsocks https://github.com/shadowsocks/shadowsocks-qt5/wiki/%E5%AE%89%E8%A3%85%E6%8C%87%E5%8D%97 在Ubuntu Linux下怎样安装QQ http://cuiqi

.net 文件上传到服务器【转】

最忌你在一个文档管理系统,包裹文件上传下载等. http://blog.csdn.net/pmy_c_l/article/details/73743843 官方链接:https://msdn.microsoft.com/zh-cn/library/system.io.filestream.read.aspx /// <summary> /// 读取本地文件上传到服务器 /// </summary> /// <param name="localfilepath&quo

将本地文件上传到指定的服务器(HttpWebRequest方法)

将本地文件上传到指定的服务器(HttpWebRequest方法),通过文件流,带文件名,同文件一同上传的表单文本域及值. 1 ///<summary> 2 /// 将本地文件上传到指定的服务器(HttpWebRequest方法) 3 /// </summary> 4 /// <param name="address">文件上传到的服务器</param> 5 /// <param name="fileNamePath&quo

scp. -本地文件上传服务器

scp 命令可以将本地文件上传服务器,或者将服务器上的文件下载到本地, 1.  上传服务器: scp [本地文件目录]  [服务器用户名]@[服务器名]:/[服务器上文件路径] 比如 scp /Documents/test.txt [email protected]服务器名:/home/optadmin/tmp/   将文件test.txt文件放到服务器上的tmp目录下 2.  下载本地 将服务器上的文件下载到本地时,只需要将上述 的两个路径互换即可 比如 scp  [email protect

JavaScript进阶 九 JS实现本地文件上传至阿里云服务器

JS实现本地文件上传至阿里云服务器 前言 在前面的博客< JavaScript进阶(八)JS实现图片预览并导入服务器功能>(点击查看详情)中,实现了JS将本地图片文件预览并上传至阿里云服务器的操作.这次需要实现将本地打包好的文件上传至阿里云服务器.使用前面的图片文件上传方法无法完成此操作.操作界面如下: 思路 本地与服务端传输文件的格式应该是熟悉的Base64格式.首先需要将本地文件转换为Base64格式,传输至服务端后,在服务端再将Base64格式的文件转换为原始文件. 源码解析 控制器 /

Mac将本地文件上传到Centos7(Linux)服务器上

1.打开终端,输入命令: scp /Users/codez/Downloads/jdk-8u144-linux-x64.tar.gz [email protected]:/root/java/jdk-8u144-linux-x64.tar.gz 2.scp 上传命令 /Users/codez/Downloads/jdk-8u144-linux-x64.tar.gz 3.表示本地上准备上传文件的路径和文件名 [email protected] 4. 表示使用root用户登录远程服务器139.224

Android文件上传至服务器

项目演示及讲解 优酷  http://v.youku.com/v_show/id_XODk5NjkwOTg4.html 爱奇艺  http://www.iqiyi.com/w_19rs1v2m15.html#vfrm=8-7-0-1 土豆  http://www.tudou.com/programs/view/fv0H93IHfhM 项目下载 1.手机端选择文件上传至服务器端 http://download.csdn.net/detail/u010134178/8457679 2.手机端拍照上传

linux本地文件上传RZ/SZ

将本地的文件上传到服务器或者从服务器上下载文件到本地,rz / sz命令很方便的帮我们实现了这个功能,但是很多Linux系统初始并没有这两个命令. 1.软件安装 (1)编译安装 root 账号登陆后,依次执行以下命令: #cd /tmp # wget http://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz # tar zxvf lrzsz-0.12.20.tar.gz && cd lrzsz-0.12.20 # ./configure &a