最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ftp服務(wù)器搭建部署與C#實(shí)現(xiàn)ftp文件的上傳的示例

 更新時(shí)間:2022年07月10日 11:38:02   作者:櫻花花  
本文主要介紹了ftp服務(wù)器搭建部署與C#實(shí)現(xiàn)ftp文件的上傳的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、簡(jiǎn)介

FTP是File Transfer Protocol(文件傳輸協(xié)議)的英文簡(jiǎn)稱,而中文簡(jiǎn)稱為“文本協(xié)議”。用于Internet上的控制文件的雙向傳輸。同時(shí),它也是一個(gè)應(yīng)用程序(Application)?;诓煌牟僮飨到y(tǒng)有不同的FTP應(yīng)用程序,而所有這些應(yīng)用程序都遵守同一種協(xié)議以傳輸文件。在ftp的使用當(dāng)中,用戶經(jīng)常遇到兩個(gè)概念:“下載”(Download)和“上傳”(upload)。“下載”文件就是從遠(yuǎn)程主機(jī)拷貝文件至自己的計(jì)算機(jī)上;“上傳”文件就是將文件從自己的計(jì)算機(jī)中拷貝至遠(yuǎn)程主機(jī)上。用Internet語言來說,用戶可通過客戶機(jī)程序向(從)遠(yuǎn)程主機(jī)上傳(下載)文件。

二、搭建FTP服務(wù)器步驟(Window sserver 2016為例)

安裝FTP服務(wù)器及部署   

添加FTP站點(diǎn)

IP地址填本機(jī)地址(不填則是本機(jī)全部IP),端口默認(rèn)21,SSL是一種數(shù)字加密證書,可申請(qǐng),在此沒有可選擇無。

 添加ftp上傳下載專用用戶(也可以選擇不添加,使用管理員用戶也OK) 

 到此ftp服務(wù)器安裝和搭建部署,就完成了。

三、登錄測(cè)試  

瀏覽器中輸入命令 ftp://IP:端口,彈窗提示輸入剛剛新建的用戶名密碼即可。

用戶名和密碼輸入正確的話就會(huì)出現(xiàn)公開的路徑。

四、C#上傳文件到FTP服務(wù)器

        /// <summary>
        /// FTP的服務(wù)器地址,格式為ftp://192.168.1.234:8021/。
        /// </summary>
        public string FTPCONSTR { get; set; }
        /// <summary>
        /// //FTP服務(wù)器的用戶名
        /// </summary>
        private string FTPUSERID { get; set; }
        /// <summary>
        /// //FTP服務(wù)器的密碼
        /// </summary>
        private string FTPPASSWORD { get; set; }
        private string ftpIP { get; set; }
        private string ftpPort { get; set; }
public FTPHelper(string ip = "IP", string username = "登錄用戶名", string password = "用戶密碼", string port = "端口")
        {
            FTPCONSTR = string.Format("{0}://{1}:{2}/", "ftp", ip, port);
            FTPUSERID = username;
            FTPPASSWORD = password;
        }
        /// <summary>
        /// 上傳文件到遠(yuǎn)程ftp
        /// </summary>
        /// <param name="path">本地的文件目錄</param>
        /// <param name="name">文件名稱</param>
        /// <returns></returns>
        public bool UploadFile(string path, string name)
        {
            FileInfo f = new FileInfo(path);
            path = FTPCONSTR + name;//這個(gè)路徑是我要傳到ftp目錄下的這個(gè)目錄下
            FtpWebRequest reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(path));
            reqFtp.Method = WebRequestMethods.Ftp.UploadFile;
            reqFtp.UsePassive = false;//只需要添加這一句話
            reqFtp.UseBinary = true;
            reqFtp.Credentials = new NetworkCredential(FTPUSERID, FTPPASSWORD);
            reqFtp.KeepAlive = false;
            reqFtp.Method = WebRequestMethods.Ftp.UploadFile;
            reqFtp.ContentLength = f.Length;
            int buffLength = 2048;
            byte[] buff = new byte[buffLength];
            int contentLen;
            FileStream fs = f.OpenRead();
            try
            {
                Stream strm = reqFtp.GetRequestStream();
                contentLen = fs.Read(buff, 0, buffLength);
                while (contentLen != 0)
                {
                    strm.Write(buff, 0, contentLen);
                    contentLen = fs.Read(buff, 0, buffLength);
                }
                strm.Close();
                fs.Close();
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
        }

調(diào)用 

            string txtFilePath="";
            try
            {
                OpenFileDialog openFileDialogTemp = new OpenFileDialog();
                openFileDialogTemp.Title = "選擇要上傳的文件";
                DialogResult dr = openFileDialogTemp.ShowDialog();
                if (!File.Exists(openFileDialogTemp.FileName))
                {
                    GLOBALS.msgbox("內(nèi)容為空,請(qǐng)選擇文件");
                    return;
                }
                if (dr == DialogResult.OK)
                {
                    txtFilePath= openFileDialogTemp.FileName;
                    string filePath = this.txtFilePath.Text;
 
                }
            }
            catch (Exception ex)
            {
 
            }
            string id = DateTime.Now.ToString("yyyyMMddHHmmss");
            string isPath = DateTime.Now.ToString("yyyy-MM-dd");
            string filePath = txtFilePath;
            string uploadUrl = isPath + "\\" + id + ".jpg";                
            FTPHelper FTPHelper = new FTPHelper();
            bool uploadresult = FTPHelper.UploadFile(filePath, uploadUrl);

如需ftp檢測(cè)目錄是否存在,不存在則創(chuàng)建文件夾,參考以下鏈接

C# ftp檢測(cè)目錄是否存在和創(chuàng)建文件夾

到此這篇關(guān)于ftp服務(wù)器搭建部署與C#實(shí)現(xiàn)ftp文件的上傳的示例的文章就介紹到這了,更多相關(guān)C# ftp文件上傳內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#基礎(chǔ)之Lambda表達(dá)式用法實(shí)例教程

    C#基礎(chǔ)之Lambda表達(dá)式用法實(shí)例教程

    這篇文章主要介紹了C#中Lambda表達(dá)式用法,并與之前所述的匿名方法做一比較,詳細(xì)的講述了Lambda表達(dá)式的定義及具體用法,需要的朋友可以參考下
    2014-09-09
  • c# RPC框架的使用簡(jiǎn)介

    c# RPC框架的使用簡(jiǎn)介

    這篇文章主要介紹了c# RPC框架的使用簡(jiǎn)介,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-02-02
  • 解析如何正確使用SqlConnection的實(shí)現(xiàn)方法

    解析如何正確使用SqlConnection的實(shí)現(xiàn)方法

    本篇文章對(duì)如何正確使用SqlConnection的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • WinForm之BindingSource基礎(chǔ)操作實(shí)例教程

    WinForm之BindingSource基礎(chǔ)操作實(shí)例教程

    這篇文章主要介紹了WinForm之BindingSource基礎(chǔ)操作,對(duì)BindingSource組建的用法進(jìn)行較為深入的實(shí)例分析,需要的朋友可以參考下
    2014-08-08
  • WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問題解決

    WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問題解決

    本文主要介紹了WPF使用觸發(fā)器需要注意優(yōu)先級(jí)問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C#中Dispose和Finalize方法使用介紹

    C#中Dispose和Finalize方法使用介紹

    這篇文章介紹了C#中Dispose和Finalize方法的用法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • C#泛型Dictionary的用法實(shí)例詳解

    C#泛型Dictionary的用法實(shí)例詳解

    這篇文章主要介紹了C#泛型Dictionary的用法,并以實(shí)例的形式講述了對(duì)鍵值對(duì)的填充、移除及遍歷等操作,需要的朋友可以參考下
    2014-09-09
  • C#線程執(zhí)行超時(shí)處理與并發(fā)線程數(shù)控制實(shí)例

    C#線程執(zhí)行超時(shí)處理與并發(fā)線程數(shù)控制實(shí)例

    這篇文章主要介紹了C#線程執(zhí)行超時(shí)處理與并發(fā)線程數(shù)控制的方法,實(shí)例講述了并發(fā)執(zhí)行存儲(chǔ)過程的最大個(gè)數(shù),讀者可對(duì)程序稍做改動(dòng)即控制并發(fā)線程數(shù),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11
  • ref 和out傳參的區(qū)別分析

    ref 和out傳參的區(qū)別分析

    今天又遇到這個(gè)問題了,問了問同事,他說最近面試的時(shí)候,也問道他了,于是給我講了講,現(xiàn)在大概是記住了,分享一下。
    2013-04-04
  • C# 當(dāng)前系統(tǒng)時(shí)間獲取及時(shí)間格式詳解

    C# 當(dāng)前系統(tǒng)時(shí)間獲取及時(shí)間格式詳解

    這篇文章主要介紹了C# 當(dāng)前系統(tǒng)時(shí)間獲取及時(shí)間格式詳解的相關(guān)資料,這里提供代碼實(shí)例,幫助大家學(xué)習(xí)參考,需要的朋友可以參考下
    2016-12-12

最新評(píng)論

济南市| 大城县| 鄂州市| 琼海市| 长子县| 南阳市| 特克斯县| 南皮县| 柘荣县| 鲁甸县| 南部县| 镇坪县| 赫章县| 海原县| 汉川市| 滁州市| 新绛县| 延长县| 宝丰县| 平乡县| 璧山县| 辽源市| 贡嘎县| 乐至县| 台南市| 富源县| 平顺县| 蒙山县| 门头沟区| 马鞍山市| 鄂伦春自治旗| 郸城县| 宜州市| 安陆市| 凤凰县| 南京市| 凤台县| 武汉市| 肥城市| 杭锦旗| 红桥区|