C# 上传文件到指定服务器

  /// <summary>  
        /// WebClient上传文件至服务器,默认不自动改名  
        /// </summary>  
        /// <param name="fileNamePath">文件名,全路径格式</param>  
        /// <param name="uriString">服务器文件夹路径</param>  
        public void UpLoadFile(string fileNamePath, string uriString)
        {
            UpLoadFile(fileNamePath, uriString, false);
        }
        /// <summary>  
        /// WebClient上传文件至服务器  
        /// </summary>  
        /// <param name="fileNamePath">文件名,全路径格式</param>  
        /// <param name="uriString">服务器文件夹路径</param>  
        /// <param name="IsAutoRename">是否自动按照时间重命名</param>  
        public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename)
        {
            string fileName = fileNamePath.Substring(fileNamePath.LastIndexOf("\\") + 1);
            string NewFileName = fileName;
            if (IsAutoRename)
            {
                NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));
            }

            string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);
            if (uriString.EndsWith("/") == false) uriString = uriString + "/";
            if (!Directory.Exists(uriString))//如果不存在就创建file文件夹
            {
                Directory.CreateDirectory(uriString);
            }
            uriString = uriString + NewFileName;
            /**/
            /// 创建WebClient实例  
            System.Net.WebClient myWebClient = new WebClient();

            myWebClient.Credentials = new NetworkCredential("10.1.31.218", "0.");

           // myWebClient.Credentials = CredentialCache.DefaultCredentials;
            // 要上传的文件  
            FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
            BinaryReader r = new BinaryReader(fs);
            byte[] postArray = r.ReadBytes((int)fs.Length);

            Stream postStream = myWebClient.OpenWrite(uriString, "PUT");
            try
            {
                //使用UploadFile方法可以用下面的格式  
                if (postStream.CanWrite)
                {
                    postStream.Write(postArray, 0, postArray.Length);
                    postStream.Close();
                    fs.Dispose();
                    //  log.AddLog("上传日志文件成功!", "Log");
                    //  basicInfo.writeLogger("上传日志文件成功!" );
                }
                else
                {
                    postStream.Close();
                    fs.Dispose();
                }
            }
            catch (Exception err)
            {
                postStream.Close();
                fs.Dispose();
                throw err;
            }
            finally
            {
                postStream.Close();
                fs.Dispose();
            }
        }
    
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在C#中将文件从本地计算机剪切到FTP服务器上,可以使用FtpWebRequest和FtpWebResponse类。以下是一个简单的代码示例: ```csharp using System; using System.IO; using System.Net; class FtpMove { static void Main() { string serverUri = "ftp://ftp.example.com/remote/path/file.txt"; string localPath = @"C:\local\path\file.txt"; string username = "username"; string password = "password"; FtpWebRequest request = (FtpWebRequest)WebRequest.Create(serverUri); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential(username, password); using (Stream fileStream = File.OpenRead(localPath)) using (Stream ftpStream = request.GetRequestStream()) { fileStream.CopyTo(ftpStream); } File.Delete(localPath); Console.WriteLine("File moved to FTP server."); } } ``` 在上面的示例中,我们首先创建一个FtpWebRequest对象并设置其Method属性为WebRequestMethods.Ftp.UploadFile以指定我们要上传文件。然后,我们使用NetworkCredential对象设置FTP服务器的用户名和密码。接下来,我们使用File.OpenRead方法获取本地文件的流,并使用GetRequestStream方法获取FTP服务器上文件的流。然后,我们使用CopyTo方法将本地文件的流复制到FTP服务器上文件的流,并使用File.Delete方法删除本地文件。 请注意,上面的代码示例仅演示了如何将文件从本地计算机剪切到FTP服务器上。如果要将文件从FTP服务器上剪切到本地计算机,请使用WebRequestMethods.Ftp.DownloadFile作为Method属性的值,并使用GetResponse方法获取FtpWebResponse对象,并使用GetResponseStream方法获取FTP服务器上文件的流。然后,使用File.WriteAllBytes或其他方法将该流写入本地文件,并使用FtpWebRequest的Method属性设置为WebRequestMethods.Ftp.DeleteFile来删除FTP服务器上的文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值