成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

FTP的文件如何管理-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)FTP的文件如何管理,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)公司是一家集成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站頁面設(shè)計、網(wǎng)站優(yōu)化SEO優(yōu)化為一體的專業(yè)網(wǎng)站設(shè)計公司,已為成都等多地近百家企業(yè)提供網(wǎng)站建設(shè)服務(wù)。追求良好的瀏覽體驗,以探求精品塑造與理念升華,設(shè)計最適合用戶的網(wǎng)站頁面。 合作只是第一步,服務(wù)才是根本,我們始終堅持講誠信,負責(zé)任的原則,為您進行細心、貼心、認真的服務(wù),與眾多客戶在蓬勃發(fā)展的市場環(huán)境中,互促共生。

1.安裝FTP

和安裝iis一樣。全部勾選。

FTP的文件如何管理

設(shè)置站點名稱和路徑。

FTP的文件如何管理

設(shè)置ip。

FTP的文件如何管理

身份授權(quán)選擇所有用戶,可以讀寫。

FTP的文件如何管理

完成之后 IIS就會出現(xiàn):

FTP的文件如何管理

2.添加FTP用戶

計算機-->管理-->本地用戶和組。 添加用戶,描述為FTP。

FTP的文件如何管理

這里要設(shè)置用戶的密碼方式,去掉“用戶下次登錄時必須更改密碼”的選項。

FTP的文件如何管理

不然會登錄不成功。報530錯誤。

3.測試登錄

ftp ip 就可以訪問。顯示230 user logged in 表示登錄成功。

FTP的文件如何管理

4.上傳下載

FtpHelper:

 public static class FtpHelper
    {        //基本設(shè)置
        private const string Path = @"ftp://192.168.253.4:21/"; //目標(biāo)路徑
        private const string Ftpip = "192.168.253.4"; // GetAppConfig("obj");    //ftp IP地址
        private const string Username = "stone"; //GetAppConfig("username");   //ftp用戶名
        private const string Password = "111111"; //GetAppConfig("password");   //ftp密碼       // 2M 可能不夠
        private const int bufferSize = 2048;        /// <summary>
        /// 獲取自定義配置的值        /// </summary>
        /// <param name="strKey">鍵值</param>
        /// <returns>鍵值對應(yīng)的值</returns>
        public static string GetAppConfig(string strKey)
        {            foreach (string key in ConfigurationManager.AppSettings)
            {                if (key == strKey)
                {                    return ConfigurationManager.AppSettings[strKey];
                }
            }            return null;
        }        //獲取ftp上面的文件和文件夾
        public static string[] GetFileList(string dir)
        {            var result = new StringBuilder();            try
            {                var ftpRequest = FtpRequest(Path, WebRequestMethods.Ftp.ListDirectory);
               webResponse response = ftpRequest.GetResponse();                var reader = new StreamReader(response.GetResponseStream());                string line = reader.ReadLine();               while (line != null)
                {
                    result.Append(line);
                    result.Append("\n");
                    Console.WriteLine(line);
                    line = reader.ReadLine();
                }                // to remove the trailing '\n'
                result.Remove(result.ToString().LastIndexOf('\n'), 1);
                reader.Close();
                response.Close();                return result.ToString().Split('\n');
            }            catch (Exception ex)
            {
                Console.WriteLine("獲取ftp上面的文件和文件夾:" + ex.Message);                return new[] {""};
            }
        }        /// <summary>
        ///     獲取文件大小        /// </summary>
        /// <param name="file">ip服務(wù)器下的相對路徑</param>
        /// <returns>文件大小</returns>
        public static int GetFileSize(string file)
        {            var result = new StringBuilder();
            FtpWebRequest request;            try
            {
                request = (FtpWebRequest) WebRequest.Create(new Uri(Path + file));
                request.UseBinary = true;
                request.Credentials = new NetworkCredential(Username, Password); //設(shè)置用戶名和密碼
                request.Method = WebRequestMethods.Ftp.GetFileSize;                var dataLength = (int) request.GetResponse().ContentLength;                return dataLength;
            }            catch (Exception ex)
            {
                Console.WriteLine("獲取文件大小出錯:" + ex.Message);                return -1;
            }
        }        /// <summary>
        ///     文件上傳        /// </summary>
        /// <param name="localFile">原路徑(絕對路徑)包括文件名</param>
        /// <param name="remoteFile">目標(biāo)文件夾:服務(wù)器下的相對路徑 不填為根目錄</param>
        public static bool UpLoad(string localFile, string remoteFile = "")
        {            try
            {                string url = Path;                if (remoteFile != "")
                    url += remoteFile + "/";                try
                {                    //待上傳的文件 (全路徑)
                    try
                    {                        var fileInfo = new FileInfo(localFile);                        using (FileStream fs = fileInfo.OpenRead())
                        {                            long length = fs.Length;
                            FtpWebRequest reqFtp = FtpRequest(url + fileInfo.Name,WebRequestMethods.Ftp.UploadFile);                            using (Stream stream = reqFtp.GetRequestStream())
                            {                                //設(shè)置緩沖大小
                                int BufferLength = 5120;                                var b = new byte[BufferLength];                                int i;                               while ((i = fs.Read(b, 0, BufferLength)) > 0)
                                {
                                    stream.Write(b, 0, i);
                                }
                                Console.WriteLine("上傳文件成功");                                return true;
                            }
                        }
                    }                    catch (Exception ex)
                    {
                        Console.WriteLine("上傳文件失敗錯誤為" + ex.Message);
                    }                    finally
                    {
                    }
                }                catch (Exception ex)
                {
                    Console.WriteLine("上傳文件失敗錯誤為" + ex.Message);
                }                finally
                {
                }
            }            catch (Exception ex)
            {
                Console.WriteLine("上傳文件失敗錯誤為" + ex.Message);
            }            return false;
        }        public static bool UpLoad(Stream localFileStream, string remoteFile)
        {            bool result = true;            try
            {                var ftpRequest = FtpRequest(Path + remoteFile, WebRequestMethods.Ftp.UploadFile);                var ftpStream = ftpRequest.GetRequestStream();                var byteBuffer = new byte[bufferSize];                int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);                try
                {                   while (bytesSent != 0)
                    {
                        ftpStream.Write(byteBuffer, 0, bytesSent);
                        bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
                    }
                }                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = false;
                }
                localFileStream.Close();
                ftpStream.Close();
            }            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                result = false;
            }            return result;
        }        public static FtpWebRequest FtpRequest(string requstUrl,string method,bool closedResponse=false)
        {            var reqFtp = (FtpWebRequest) WebRequest.Create(new Uri(requstUrl));            //設(shè)置連接到FTP的帳號密碼
            reqFtp.Credentials = new NetworkCredential(Username, Password);            //設(shè)置請求完成后是否保持連接
            reqFtp.KeepAlive = false;            //指定執(zhí)行命令
            reqFtp.Method = method;            //指定數(shù)據(jù)傳輸類型
            reqFtp.UseBinary = true;            if (closedResponse)
            {                var resp=reqFtp.GetResponse();
                resp.Close();
            }            return reqFtp;
        }        /// <summary>
        /// 下載        /// </summary>
        /// <param name="localFile">目的位置</param>
        /// <param name="remoteFile">服務(wù)器相對位置</param>
        /// <returns></returns>
        public static bool Download(string localFile,string remoteFile)
        {            bool check = true;            try
            {                var outputStream = new FileStream(localFile, FileMode.Create);                var ftpRequest = FtpRequest(Path + remoteFile, WebRequestMethods.Ftp.DownloadFile);                var response = (FtpWebResponse)ftpRequest.GetResponse();
                Stream ftpStream = response.GetResponseStream();                long cl = response.ContentLength;                int bufferSize = 2048;                int readCount;                var buffer = new byte[bufferSize];
                readCount = ftpStream.Read(buffer, 0, bufferSize);               while (readCount > 0)
                {
                    outputStream.Write(buffer, 0, readCount); 
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                }
                ftpStream.Close();
                outputStream.Close();
                response.Close();
            }            catch (Exception err)
            {
                check = false;
            }            return check;
        }        public static Stream Download(string remoteFile)
        {            var ftpRequest = FtpRequest(Path + remoteFile, WebRequestMethods.Ftp.DownloadFile);            var response = (FtpWebResponse)ftpRequest.GetResponse();
            Stream ftpStream = response.GetResponseStream();            return ftpStream;
        }        /// <summary>
        ///     刪除文件        /// </summary>
        /// <param name="fileName">服務(wù)器下的相對路徑 包括文件名</param>
        public static void DeleteFileName(string fileName)
        {            try
            {
               FtpRequest(Path + fileName, WebRequestMethods.Ftp.DeleteFile,true);
            }            catch (Exception ex)
            {
                Console.WriteLine("刪除文件出錯:" + ex.Message);
            }
        }        /// <summary>
        /// 新建目錄 上一級必須先存在        /// </summary>
        /// <param name="dirName">服務(wù)器下的相對路徑</param>
        public static void MakeDir(string dirName)
        {            try
            {
                FtpRequest(Path + dirName, WebRequestMethods.Ftp.MakeDirectory, true);
            }            catch (Exception ex)
            {
                Console.WriteLine("創(chuàng)建目錄出錯:" + ex.Message);
            }
        }        /// <summary>
        /// 刪除目錄 上一級必須先存在        /// </summary>
        /// <param name="dirName">服務(wù)器下的相對路徑</param>
        public static void DelDir(string dirName)
        {            try
            {
               FtpRequest(Path + dirName, WebRequestMethods.Ftp.RemoveDirectory,true);
            }            catch (Exception ex)
            {
                Console.WriteLine("刪除目錄出錯:" + ex.Message);
            }
        }        /// <summary>
        ///     從ftp服務(wù)器上獲得文件夾列表        /// </summary>
        /// <param name="requedstPath">服務(wù)器下的相對路徑</param>
        /// <returns></returns>
        public static List<string> GetDirctory(string requedstPath)
        {            var strs = new List<string>();            try
            {                var reqFtp = FtpRequest(Path + requedstPath, WebRequestMethods.Ftp.ListDirectoryDetails);
               webResponse response = reqFtp.GetResponse();                var reader = new StreamReader(response.GetResponseStream()); //中文文件名
                string line = reader.ReadLine();               while (line != null)
                {                    if (line.Contains("<DIR>"))
                    {                        string msg = line.Substring(line.LastIndexOf("<DIR>") + 5).Trim();
                        strs.Add(msg);
                    }
                    line = reader.ReadLine();
                }
                reader.Close();
                response.Close();                return strs;
            }            catch (Exception ex)
            {
                Console.WriteLine("獲取目錄出錯:" + ex.Message);
            }            return strs;
        }        /// <summary>
        ///     從ftp服務(wù)器上獲得文件列表        /// </summary>
        /// <param name="requedstPath">服務(wù)器下的相對路徑</param>
        /// <returns></returns>
        public static List<string> GetFile(string requedstPath)
        {            var strs = new List<string>();            try
            {                var reqFtp = FtpRequest(Path + requedstPath, WebRequestMethods.Ftp.ListDirectoryDetails);
               webResponse response = reqFtp.GetResponse();                var reader = new StreamReader(response.GetResponseStream()); //中文文件名
                string line = reader.ReadLine();               while (line != null)
                {                    if (!line.Contains("<DIR>"))
                    {                        string msg = line.Substring(39).Trim();
                        strs.Add(msg);
                    }
                    line = reader.ReadLine();
                }
                reader.Close();
                response.Close();                return strs;
            }            catch (Exception ex)
            {
                Console.WriteLine("獲取文件出錯:" + ex.Message);
            }            return strs;
        }
    }

View Code

主要是通過創(chuàng)建FtpRequest來處理Ftp相關(guān)請求。

  public static FtpWebRequest FtpRequest(string requstUrl,string method,bool closedResponse=false)
        {            var reqFtp = (FtpWebRequest) WebRequest.Create(new Uri(requstUrl));            //設(shè)置連接到FTP的帳號密碼
            reqFtp.Credentials = new NetworkCredential(Username, Password);            //設(shè)置請求完成后是否保持連接
            reqFtp.KeepAlive = false;            //指定執(zhí)行命令
            reqFtp.Method = method;            //指定數(shù)據(jù)傳輸類型
            reqFtp.UseBinary = true;            if (closedResponse)
            {                var resp=reqFtp.GetResponse();
                resp.Close();
            }            return reqFtp;
        }

因為在MVC網(wǎng)站中使用的文件流的方式。

下載:

   public static Stream Download(string remoteFile)
        {            var ftpRequest = FtpRequest(Path + remoteFile, WebRequestMethods.Ftp.DownloadFile);            var response = (FtpWebResponse)ftpRequest.GetResponse();
            Stream ftpStream = response.GetResponseStream();            return ftpStream;
        }

調(diào)用:

 public ActionResult DownloadFileFromFtp()
        {             var filepath = "DIAView//simple.png";              var stream = FtpHelper.Download(filepath);            return File(stream, FileHelper.GetContentType(".png"),"test.png");
        }

上傳:

  public static bool UpLoad(Stream localFileStream, string remoteFile)
        {            bool result = true;            try
            {                var ftpRequest = FtpRequest(Path + remoteFile, WebRequestMethods.Ftp.UploadFile);                var ftpStream = ftpRequest.GetRequestStream();                var byteBuffer = new byte[bufferSize];                int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);                try
                {                   while (bytesSent != 0)
                    {
                        ftpStream.Write(byteBuffer, 0, bytesSent);
                        bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
                    }
                }                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                    result = false;
                }
                localFileStream.Close();
                ftpStream.Close();
            }            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                result = false;
            }            return result;
        }

調(diào)用:

      [HttpPost]        public JsonResult UploadFile(HttpPostedFileBase fileData)
        {           if (fileData != null)
            {               string fileName = Path.GetFileName(fileData.FileName);// 原始文件名稱
                string saveName = Encrypt.GenerateOrderNumber() +"_"+fileName;  
                FtpHelper.UpLoad(fileData.InputStream, "DIAView" + "/" + saveName);                return Json(new { Success = true, FileName = fileName, SaveName = saveName}, JsonRequestBehavior.AllowGet);
            }            return Json(new { Success = false, Message = "請選擇要上傳的文件!" }, JsonRequestBehavior.AllowGet);
        }

Ftp還可以設(shè)置不同用戶有不同的目錄,是以為記

上述就是小編為大家分享的FTP的文件如何管理了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

名稱欄目:FTP的文件如何管理-創(chuàng)新互聯(lián)
分享地址:http://jinyejixie.com/article30/dpoeso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站制作面包屑導(dǎo)航、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站制作企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
孟村| 和林格尔县| 铜山县| 固阳县| 福建省| 资溪县| 射阳县| 扶绥县| 新晃| 尤溪县| 尼勒克县| 马关县| 葫芦岛市| 义马市| 扶绥县| 大厂| 南京市| 南安市| 温州市| 金乡县| 望城县| 夏邑县| 龙州县| 浪卡子县| 迁安市| 白沙| 斗六市| 阿勒泰市| 西青区| 竹北市| 仁怀市| 应城市| 新宁县| 紫云| 嵩明县| 奉新县| 民和| 漯河市| 宝鸡市| 集贤县| 永福县|