问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

手机小米文件管理器的ftp怎样用

发布网友 发布时间:2022-04-21 06:33

我来回答

2个回答

懂视网 时间:2022-04-20 14:47

这次给大家带来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("
");
   Console.WriteLine(line);
   line = reader.ReadLine();
  }  // to remove the trailing '
'
  result.Remove(result.ToString().LastIndexOf('
'), 1);
  reader.Close();
  response.Close();  return result.ToString().Split('
');
  }  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>
 /// 新建目录 上一级必须先存在 /// </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>
 /// 删除目录 上一级必须先存在 /// </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还可以设置不同用户有不同的目录,是以为记

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

怎样用nodejs搭建服务器

怎样将Node.JS部署到Heroku

热心网友 时间:2022-04-20 11:55

首先要确保手机和电脑在同一局域网。
打开手机文件管理器,切换到“手机”视图,点击“远程管理”,点击“启动服务”,会出现一个FTP地址;在我的电脑在地址栏或者浏览器地址栏输入FTP地址,在电脑上就可以访问手机文件了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
快手极速版怎么绑定不了微信? 本班数学期中测试的优秀率是50%是什么意思 期中测试中全班56名同学有42人达到了优秀标准熊启中是稠剂的优秀率是... 期中测试中,全班56名同学,有49跟达到了优秀标准,求期中测试的优秀率是... 东瓜怎样吃,是减肥的最佳效果呢? 木耳冬瓜瘦肉汤怎么做味道极佳? 黑木耳冬瓜肉末汤美食做法 和前男友分手一年多了,也没联系过,怎么昨晚突然梦到他,而且感觉好真实... 面对分手两年多后的前男友,我应该怎么办 ...了微信但不说话,相亲女加了微信却不聊天,这是什么心态?_百... 如何用安卓手机建立个ftp服务器,让*手机或电脑连接 怎么用手机连接FTP服务器,万网的。 安卓手机怎样建立ftp服务? 安卓手机如何连接ftp?不是建立,是连接 手机可以搭建FTP嘛,用什么搭建 我想用手机登上一个ftp地址,该怎么做? 用手机怎么打开FTP 手机如何与FTP服务器建立连接 安卓手机如何通过ftp远程连接电脑,并传输文件。 华为手机怎么打开ftp地址? 手机ftp怎么用 求微信4.0以上5.0以下安卓下载 手机无法安装微信怎么办 2020年微信最新版本下载 微信怎么可以分身 微信下载安装免费 下载微信咋下 手机qq群怎么转让群主 qq群如何转让群主(安卓版) 群怎么转让? 安卓手机搭建FTP服务器 电脑创建ftp服务器,手机怎么用wifi连接呢? 苹果手机怎么上.ftp 手机如何访问互联网FTP 网站 怎么搭建手机可以访问的ftp服务器 找一款优质画面的PC游戏 喝剩的饮料 我想知道可乐有何妙用? 百事可乐没喝完有什么用途 为何市面上卖的,基本上都是百事可乐和可口可乐? 百事可乐煲疆有什么用处 PET瓶和BOPP瓶在用途方面的区别 百事可乐里面的食用香精是天然植物的吗 肖像权侵权认定的标准是什么?不用做商业行为可以吗? 什么是快速分拣 看美剧学地道英语口语:Hit有哪些用法 涓怎么读音 PET废料买卖 电脑微信qq能上网页打不开怎么回事 win10网页打不开 微信可以上