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

  ///  
        /// WebClient上传文件至服务器,默认不自动改名  
        ///
 
        /// 文件名,全路径格式  
        /// 服务器文件夹路径  
        public void UpLoadFile(string fileNamePath, string uriString)
        {
            UpLoadFile(fileNamePath, uriString, false);
        }
        ///  
        /// WebClient上传文件至服务器  
        ///
 
        /// 文件名,全路径格式  
        /// 服务器文件夹路径  
        /// 是否自动按照时间重命名  
        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();
            }
        }
    

你可能感兴趣的:(C#)