• C#服务器NFS共享文件夹搭建与上传图片文件


    C#Windows server2016服务器搭建NFS共享文件夹与C#上传图片到共享文件夹

    • nfs共享文件夹实现步骤

      • 基于:Windows server2016,其他版本大同小异
    • 安装NFS组件(如果已安装略过)

      •  
      •  
      •  
    • 在源服务器建立nfs文件夹共享

      •  
    • 到此服务器创建NFS就完成了,接下来我们开始程序上传

    • 使用net dos命令

    • 尝试连接共享文件夹
    • bool status = connectState(@"\\IP\uploadImages", "用户登录名", "登录密码");
      1. /// <summary>
      2. /// 连接共享文件
      3. /// </summary>
      4. /// <param name="path">共享文件地址</param>
      5. /// <param name="userName">用户名</param>
      6. /// <param name="passWord">密码</param>
      7. /// <returns>true:连接成功 false:连接失败</returns>
      8. public static bool connectState(string path, string userName, string passWord)
      9. {
      10. bool Flag = false;
      11. Process proc = new Process();
      12. try
      13. {
      14. proc.StartInfo.FileName = "cmd.exe";
      15. proc.StartInfo.UseShellExecute = false;
      16. proc.StartInfo.RedirectStandardInput = true;
      17. proc.StartInfo.RedirectStandardOutput = true;
      18. proc.StartInfo.RedirectStandardError = true;
      19. proc.StartInfo.CreateNoWindow = true;
      20. proc.Start();
      21. string dosLine = "net use " + path + " " + passWord + " /user:" + userName;
      22. proc.StandardInput.WriteLine(dosLine);
      23. proc.StandardInput.WriteLine("exit");
      24. while (!proc.HasExited)
      25. {
      26. proc.WaitForExit(1000);
      27. }
      28. string errormsg = proc.StandardError.ReadToEnd();
      29. proc.StandardError.Close();
      30. if (string.IsNullOrEmpty(errormsg))
      31. {
      32. Flag = true;
      33. }
      34. else
      35. {
      36. throw new Exception(errormsg);
      37. }
      38. }
      39. catch (Exception ex)
      40. {
      41. throw ex;
      42. }
      43. finally
      44. {
      45. proc.Close();
      46. proc.Dispose();
      47. }
      48. return Flag;
      49. }
    •   

      1. /// <summary>
      2. /// 选择图片或文件上传至服务器nfs共享文件夹
      3. /// </summary>
      4. public void DosCopyImage()
      5. {
      6. if (status == false)
      7. {
      8. GLOBALS.msgbox("连续服务器失败!");
      9. return;
      10. }
      11. string id = DateTime.Now.ToString("yyyyMMddHHmmss");
      12. string isPath = DateTime.Now.ToString("yyyy-MM-dd");
      13. string Path = IISPATH + isPath;
      14. if (!Directory.Exists(IISPATH))
      15. {
      16. Directory.CreateDirectory(IISPATH);
      17. }
      18. string txtFilePath = "";
      19. OpenFileDialog openFileDialogTemp = new OpenFileDialog();
      20. openFileDialogTemp.Title = "选择要上传的图片";
      21. openFileDialogTemp.Filter = "*.jpg,*.png,|*.jpg;*.png;";//如需上传文件把文件添加上即可
      22. DialogResult dr = openFileDialogTemp.ShowDialog();
      23. if (!File.Exists(openFileDialogTemp.FileName))
      24. {
      25. GLOBALS.msgbox("照片为空,请选择图片");
      26. return;
      27. }
      28. if (dr == DialogResult.OK)
      29. {
      30. txtFilePath = openFileDialogTemp.FileName;
      31. }
      32. if (txtFilePath.Trim() == "")
      33. {
      34. GLOBALS.msgbox("请选择文件!");
      35. return;
      36. }
      37. string filePath = this.txtFilePath.Text;
      38. string uploadUrl = IISPATH + isPath + "/" + id + ".jpg";
      39. try
      40. {
      41. File.Copy(filePath, uploadUrl);//复制文件夹下的所有文件、目录到指定的文件夹
      42. GLOBALS.msgbox("上传成功!");
      43. }
      44. catch (Exception)
      45. {
      46. }
      47. }
    • 使用这个方法之前,先打开cmd窗口,用dos命令运行是否正常

      • 命令:打开连接:net use \\IP地址\uploadImages$ 密码/user:用户名  注意:只有三个空格

      • 删除连接:net use \\IP地址\uploadImages$ 密码/user:用户名\del

    • net use错误解决方案:

      1. 错误号5,拒绝访问:很可能你使用的用户不是管理员权限的,先提升权限;

      2. 错误号51,Windows无法找到网络路径:网络有问题;

      3. 错误号53,找不到网络路径:ip地址错误;目标未开机;目标lanmanserver服务未启动;目标有防火墙(端口过滤);

      4. 错误号67,找不到网络名:你的lanmanworkstation服务未启动或者目标删除了uploadImages$;

      5. 错误号1219,提供的凭据与已存在的凭据集冲突:你已经和对方建立了一个uploadImages$,请删除再连;

      6. 错误号1326,未知的用户名或错误密码:原因很明显了;

  • 相关阅读:
    Mysql索引优化1
    Linux的TCP连接问题解决调优观察
    Jupyter中使用parse报错[args = pp.parse_args()]
    Docker安全及日志管理
    JWT的应用
    hive笔记(一):hive概述-优点/缺点/构架原理/与数据库比较
    22 VueComponent 响应式处理
    SpringCloud学习笔记(三)Zookeeper服务注册与发现
    RTT学习笔记7-中断管理
    基于STM32+OneNet设计的物联网智能鱼缸(2023升级版)
  • 原文地址:https://blog.csdn.net/qq_37192571/article/details/125553126