°Ù·Ö°ÙÔ´ÂëÍø-Èý¨Õ¾±äµÃÈç´Ë¼òµ¥£¡ µÇ¼ ×¢²á Ç©µ½Áì½ð±Ò£¡

Ö÷Ò³ | ÈçºÎÉý¼¶VIP | TAG±êÇ©

µ±Ç°Î»ÖÃ: Ö÷Ò³>ÍøÕ¾½Ì³Ì>html5½Ì³Ì> FTPµÄÎļþÖÎÀí
·ÖÏíÎÄÕµ½£º

FTPµÄÎļþÖÎÀí

·¢²¼Ê±¼ä£º09/01 À´Ô´£ºÎ´Öª ä¯ÀÀ£º ¹Ø¼ü´Ê£º
Õâ´Î¸ø´ó¼Ò´øÀ´FTPµÄÎļþÖÎÀí£¬¶ÔFTPÎļþÍ£Ö¹ÖÎÀíµÄÁôÒâÊÂÏîÊÇʲô£¬ÏÂÃæ¾ÍÊÇʵս°¸Àý£¬Ò»ÆðÀ´¿´Ò»Ï¡£

ÓÉÓÚÍøÕ¾ÓÐÏÂÔØÎļþÐèÒªºÍÍøÕ¾±ðÀ룬ʹÓõ½ÁËFTPÖÎÀíÎļþ£¬ÕâÀï×öÒ»¸ö¼ò±ãµÄÕûÀí¡£

1.°²ÖÃFTP

ºÍ°²ÖÃiisÒ»Ñù¡£È«²¿¹´Ñ¡¡£

É趨վµãÃû³ÆºÍ;¾¶¡£

É趨ip¡£

Éí·ÝÊÚȨѡÖÐËùÓлáÔ±£¬¿ÉÒÔ¶Áд¡£

Íê³ÉÖ®ºó IIS¾Í»áÏÔÏÖ£º

2.Ôö¼ÓFTP»áÔ±

ÔËËã»ú-->ÖÎÀí-->µ±µØ»áÔ±ºÍ×é¡£ Ôö¼Ó»áÔ±£¬ÃèдΪFTP¡£

ÕâÀïÒªÉ趨»áÔ±µÄÃÜÂ뷽ʽ£¬È¥³ý¡°»áԱϴεǼʱ±ØÐè¸ü»»ÃÜÂ롱µÄÑ¡Ïî¡£

²»È»»áµÇ¼²»³É¹¦¡£±¨530´íÎó¡£

3.²âÊԵǼ

ftp ip ¾Í¿ÉÒ԰ݷá£ÏÔʾ230 user logged in ±íʾµÇ¼³É¹¦¡£

4.ÉÏ´«ÏÂÔØ

FtpHelper:

 public static class FtpHelper
    {        //¸ù±¾É趨
        private const string Path = @"ftp://192.168.253.4:21/"; //Ä¿±ê;¾¶
        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>¼üÖµ¶ÔÓ¦µÄÖµ</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ЧÀÍÆ÷ϵÄÏà¶Ô;¾¶</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); //É趨»áÔ±ÃûºÍÃÜÂë
                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">Ä¿±êÎļþ¼Ð£ºÐ§ÀÍÆ÷ϵÄÏà¶Ô;¾¶ ²»ÌîΪ¸ùÃûÄ¿</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())
                            {                                //É趨»º³å´óС
                                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));            //É趨Á¬½Óµ½FTPµÄÕʺÅÃÜÂë
            reqFtp.Credentials = new NetworkCredential(Username, Password);            //É趨¿ÒÇóÍê³Éºó¿É·ñ±£³ÖÁ¬½Ó
            reqFtp.KeepAlive = false;            //Ö¸¶¨Ê©ÐÐÃüÁî
            reqFtp.Method = method;            //Ö¸¶¨Êý¾Ý´«ÊäÀàÐÍ
            reqFtp.UseBinary = true;            if (closedResponse)
            {                var resp=reqFtp.GetResponse();
                resp.Close();
            }            return reqFtp;
        }        /// <summary>
        /// ÏÂÔØ        /// </summary>
        /// <param name="localFile">Ä¿µÄλÖÃ</param>
        /// <param name="remoteFile">ЧÀÍÆ÷Ïà¶ÔλÖÃ</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">ЧÀÍÆ÷ϵÄÏà¶Ô;¾¶ °üÂÞÎļþÃû</param>
        public static void DeleteFileName(string fileName)
        {            try
            {
               FtpRequest(Path + fileName, WebRequestMethods.Ftp.DeleteFile,true);
            }            catch (Exception ex)
            {
                Console.WriteLine("ɾ³ýÎļþ³ö´í£º" + ex.Message);
            }
        }        /// <summary>
        /// ´´½¨ÃûÄ¿ ÉÏ1¼¶±ØÐèÏÈ´æÔÚ        /// </summary>
        /// <param name="dirName">ЧÀÍÆ÷ϵÄÏà¶Ô;¾¶</param>
        public static void MakeDir(string dirName)
        {            try
            {
                FtpRequest(Path + dirName, WebRequestMethods.Ftp.MakeDirectory, true);
            }            catch (Exception ex)
            {
                Console.WriteLine("´´Á¢ÃûÄ¿³ö´í£º" + ex.Message);
            }
        }        /// <summary>
        /// ɾ³ýÃûÄ¿ ÉÏ1¼¶±ØÐèÏÈ´æÔÚ        /// </summary>
        /// <param name="dirName">ЧÀÍÆ÷ϵÄÏà¶Ô;¾¶</param>
        public static void DelDir(string dirName)
        {            try
            {
               FtpRequest(Path + dirName, WebRequestMethods.Ftp.RemoveDirectory,true);
            }            catch (Exception ex)
            {
                Console.WriteLine("ɾ³ýÃûÄ¿³ö´í£º" + ex.Message);
            }
        }        /// <summary>
        ///     ´ÓftpЧÀÍÆ÷ÉÏ»ñµÃÎļþ¼ÐÁÐ±í        /// </summary>
        /// <param name="requedstPath">ЧÀÍÆ÷ϵÄÏà¶Ô;¾¶</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ЧÀÍÆ÷ÉÏ»ñµÃÎļþÁÐ±í        /// </summary>
        /// <param name="requedstPath">ЧÀÍÆ÷ϵÄÏà¶Ô;¾¶</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

Ö÷Èç¹ûͨ¹ý´´Á¢FtpRequestÀ´´¦ÖÃFtpÏà¹Ø¿ÒÇó¡£

  public static FtpWebRequest FtpRequest(string requstUrl,string method,bool closedResponse=false)
        {            var reqFtp = (FtpWebRequest) WebRequest.Create(new Uri(requstUrl));            //É趨Á¬½Óµ½FTPµÄÕʺÅÃÜÂë
            reqFtp.Credentials = new NetworkCredential(Username, Password);            //É趨¿ÒÇóÍê³Éºó¿É·ñ±£³ÖÁ¬½Ó
            reqFtp.KeepAlive = false;            //Ö¸¶¨Ê©ÐÐÃüÁî
            reqFtp.Method = method;            //Ö¸¶¨Êý¾Ý´«ÊäÀàÐÍ
            reqFtp.UseBinary = true;            if (closedResponse)
            {                var resp=reqFtp.GetResponse();
                resp.Close();
            }            return reqFtp;
        }

ÓÉÓÚÔÚMVCÍøÕ¾ÖÐʹÓõÄÎļþÁ÷µÄ·½Ê½¡£

ÏÂÔØ£º

   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;
        }

µ÷È¡£º

 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;
        }

µ÷È¡£º

      [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»¹¿ÉÒÔÉ趨²»Ò»Ñù»áÔ±Óв»Ò»ÑùµÄÃûÄ¿£¬ÊÇÈÏΪ¼Ç

ÐÅÀµ¿´Á˱¾°¸ë¹ÀýÄãÒѾ­°ÑÎÕÁË°ì·¨£¬¸ü¶à³öÉ«Çë¹Ø×¢°Ù·Ö°ÙÔ´ÂëÍøÆäËüÏà¹ØÎÄÕ£¡

Òý¼öÔĶÁ£º

ÔõÑùÓÃnodejs´î½¨Ð§ÀÍÆ÷

ÔõÑù½«Node.JS°ÚÉèµ½Heroku

ÒÔÉϾÍÊÇFTPµÄÎļþÖÎÀíµÄ¾ßÌåÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢°Ù·Ö°ÙÔ´ÂëÍøÆäËüÏà¹ØÎÄÕ£¡

´òÉÍ

´òÉÍ

È¡Ïû

¸ÐлÄúµÄÖ§³Ö£¬ÎÒ»á¼ÌÐøŬÁ¦µÄ!

ɨÂëÖ§³Ö
ɨÂë´òÉÍ£¬Äã˵¶àÉپͶàÉÙ

´ò¿ªÖ§¸¶±¦É¨Ò»É¨£¬¼´¿É½øÐÐɨÂë´òÉÍŶ

°Ù·Ö°ÙÔ´ÂëÍø ½¨Òé´òÉÍ1¡«10Ôª£¬ÍÁºÀËæÒ⣬¸ÐлÄúµÄÔĶÁ£¡

¹²ÓÐ150ÈËÔĶÁ£¬ÆÚ´ýÄãµÄÆÀÂÛ£¡·¢±íÆÀÂÛ
êdzƣº ÍøÖ·£º ÑéÖ¤Â룺 µã»÷ÎÒ¸ü»»Í¼Æ¬
×îÐÂÆÀÂÛ

±¾ÎıêÇ©

¹ã¸æÔÞÖú

ÄܳöÒ»·ÖÁ¦ÊÇÒ»·Ö°É£¡

¶©ÔÄ»ñµÃ¸ü¶àÄ£°å

±¾ÎıêÇ©

¹ã¸æÔÞÖú

¶©ÔÄ»ñµÃ¸ü¶àÄ£°å