国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

FTP的文件管理

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 15:25:48
文檔

FTP的文件管理

FTP的文件管理:這次給大家?guī)?lái)FTP的文件管理,對(duì)FTP文件進(jìn)行管理的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。因?yàn)榫W(wǎng)站有下載文件需要和網(wǎng)站分離,使用到了FTP管理文件,這里做一個(gè)簡(jiǎn)單的整理。1.安裝FTP 和安裝iis一樣。全部勾選。 設(shè)置站點(diǎn)名稱和路徑。 設(shè)置i
推薦度:
導(dǎo)讀FTP的文件管理:這次給大家?guī)?lái)FTP的文件管理,對(duì)FTP文件進(jìn)行管理的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。因?yàn)榫W(wǎng)站有下載文件需要和網(wǎng)站分離,使用到了FTP管理文件,這里做一個(gè)簡(jiǎn)單的整理。1.安裝FTP 和安裝iis一樣。全部勾選。 設(shè)置站點(diǎn)名稱和路徑。 設(shè)置i
這次給大家?guī)?lái)FTP的文件管理,對(duì)FTP文件進(jìn)行管理的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

因?yàn)榫W(wǎng)站有下載文件需要和網(wǎng)站分離,使用到了FTP管理文件,這里做一個(gè)簡(jiǎn)單的整理。

1.安裝FTP

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

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

設(shè)置ip。

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

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

2.添加FTP用戶

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

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

不然會(huì)登錄不成功。報(bào)530錯(cuò)誤。

3.測(cè)試登錄

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

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>鍵值對(duì)應(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ù)器下的相對(duì)路徑</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("獲取文件大小出錯(cuò):" + ex.Message); return -1;
 }
 } /// <summary>
 /// 文件上傳 /// </summary>
 /// <param name="localFile">原路徑(絕對(duì)路徑)包括文件名</param>
 /// <param name="remoteFile">目標(biāo)文件夾:服務(wù)器下的相對(duì)路徑 不填為根目錄</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("上傳文件失敗錯(cuò)誤為" + ex.Message);
 } finally
 {
 }
 } catch (Exception ex)
 {
 Console.WriteLine("上傳文件失敗錯(cuò)誤為" + ex.Message);
 } finally
 {
 }
 } catch (Exception ex)
 {
 Console.WriteLine("上傳文件失敗錯(cuò)誤為" + 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的帳號(hào)密碼
 reqFtp.Credentials = new NetworkCredential(Username, Password); //設(shè)置請(qǐng)求完成后是否保持連接
 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ù)器相對(duì)位置</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ù)器下的相對(duì)路徑 包括文件名</param>
 public static void DeleteFileName(string fileName)
 { try
 {
 FtpRequest(Path + fileName, WebRequestMethods.Ftp.DeleteFile,true);
 } catch (Exception ex)
 {
 Console.WriteLine("刪除文件出錯(cuò):" + ex.Message);
 }
 } /// <summary>
 /// 新建目錄 上一級(jí)必須先存在 /// </summary>
 /// <param name="dirName">服務(wù)器下的相對(duì)路徑</param>
 public static void MakeDir(string dirName)
 { try
 {
 FtpRequest(Path + dirName, WebRequestMethods.Ftp.MakeDirectory, true);
 } catch (Exception ex)
 {
 Console.WriteLine("創(chuàng)建目錄出錯(cuò):" + ex.Message);
 }
 } /// <summary>
 /// 刪除目錄 上一級(jí)必須先存在 /// </summary>
 /// <param name="dirName">服務(wù)器下的相對(duì)路徑</param>
 public static void DelDir(string dirName)
 { try
 {
 FtpRequest(Path + dirName, WebRequestMethods.Ftp.RemoveDirectory,true);
 } catch (Exception ex)
 {
 Console.WriteLine("刪除目錄出錯(cuò):" + ex.Message);
 }
 } /// <summary>
 /// 從ftp服務(wù)器上獲得文件夾列表 /// </summary>
 /// <param name="requedstPath">服務(wù)器下的相對(duì)路徑</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("獲取目錄出錯(cuò):" + ex.Message);
 } return strs;
 } /// <summary>
 /// 從ftp服務(wù)器上獲得文件列表 /// </summary>
 /// <param name="requedstPath">服務(wù)器下的相對(duì)路徑</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("獲取文件出錯(cuò):" + ex.Message);
 } return strs;
 }
 }

View Code

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

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

因?yàn)樵贛VC網(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 = "請(qǐng)選擇要上傳的文件!" }, JsonRequestBehavior.AllowGet);
 }

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

相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!

推薦閱讀:

怎樣用nodejs搭建服務(wù)器

怎樣將Node.JS部署到Heroku

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

FTP的文件管理

FTP的文件管理:這次給大家?guī)?lái)FTP的文件管理,對(duì)FTP文件進(jìn)行管理的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。因?yàn)榫W(wǎng)站有下載文件需要和網(wǎng)站分離,使用到了FTP管理文件,這里做一個(gè)簡(jiǎn)單的整理。1.安裝FTP 和安裝iis一樣。全部勾選。 設(shè)置站點(diǎn)名稱和路徑。 設(shè)置i
推薦度:
標(biāo)簽: 文件 的文件 管理
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 永久毛片 | 99精品国产免费久久国语 | a级毛片免费高清视频 | 成人a网| 欧美视频精品一区二区三区 | 九九啪啪 | 久久99精品一久久久久久 | 久久九色综合九色99伊人 | 精品国产亚一区二区三区 | 国产成人精品视频 | 亚洲视频免费在线观看 | 久久精品欧美日韩精品 | 图片一区 | 欧美精品专区免费观看 | 欧美久久久久久久一区二区三区 | 亚洲视频在线观看 | 国产午夜视频在线观看 | 日韩欧美一区在线观看 | 精品精品国产高清a毛片牛牛 | 亚洲v视频 | 欧美va在线 | 国产成人免费在线视频 | 国产最新视频 | 欧美不卡激情三级在线观看 | 国产精品系列在线观看 | 亚洲欧美在线综合 | 国模沟沟一区二区三区 | 久久精品a国产一级 | 精品国产91乱码一区二区三区 | 亚洲欧美啪啪 | 欧美极品第1页专区 | 欧美日韩精品 | 在线观看亚洲一区二区 | 亚洲 欧美综合小说区图片区 | 欧美综合在线视频 | 最刺激黄a大片免费观看 | 欧美日韩高清一本大道免费 | 国产在线观看第一页 | 亚洲第一导航 | 免费一区二区三区在线视频 | 亚洲另类在线观看 |