参考资料:ASP.NET 上传文件到共享文件夹
创建共享文件夹参考资料:https://www.cnblogs.com/dansediao/p/5712657.html
一、配置上传文件相关参数并读取参数
1.配置appsettings.json
{ "FileUploadInfo": { "UploadPath": "\\\\172.21.0.10\\File", "DownloadPath": "http://213.10.11.126:8001/", "UserName": "ShareUser", "Password": "Password" } }
2.读取配置数据
2.1 新建实体类
/// /// 文件上传配置项 /// public class FileUploadConst { /// /// 上传地址 /// public string UploadPath { get; set; } /// /// 文件访问/下载地址 /// public string DownloadPath { get; set; } /// /// 访问共享目录用户名 /// public string UserName { get; set; } /// /// 访问共享目录密码 /// public string Password { get; set; } }
2.2 映射实体类与配置项
在startup.cs中配置
public void ConfigureServices(IServiceCollection services) { services.Configure(Configuration.GetSection("FileUploadInfo")); }
3.控制器中读取配置项,通过注入的方式
public FileUploadConst FileUploadConfig { get; set; } public UploadController(IOptions option) { FileUploadConfig = option.Value; }
二、上传文件
上传文件之前记得初始化构造方法,注入文件上传配置项!!!!!↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
1.连接文件服务器方法
/// /// 连接远程共享文件夹 /// /// 远程共享文件夹的路径 /// 用户名 /// 密码 private static bool connectState(string path, string userName, string passWord) { var flag = false; var proc = new Process(); try { proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.RedirectStandardOutput = true; proc.StartInfo.RedirectStandardError = true; proc.StartInfo.CreateNoWindow = true; proc.Start(); var dosLine = "net use " + path + " " + passWord + " /user:" + userName; proc.StandardInput.WriteLine(dosLine); proc.StandardInput.WriteLine("exit"); while (!proc.HasExited) { proc.WaitForExit(1000); } var errormsg = proc.StandardError.ReadToEnd(); proc.StandardError.Close();if (string.IsNullOrEmpty(errormsg)) { flag = true; } else { throw new Exception(errormsg); } } catch (Exception ex) { WriteHelper.WriteFile(ex); throw ex; } finally { proc.........