/// <summary> /// 删除服务器上文件 /// </summary> /// <param name="webFileServer"></param> /// <param name="fileName">虚拟路径 或 物理路径 地址</param> /// <param name="targetServer"></param> public static void DeleteServerFile(string webFileServer, string fileName, UtilConstants.ServerType targetServer) { if (string.IsNullOrWhiteSpace(fileName)) { return; } switch (targetServer) { case UtilConstants.ServerType.WebFileService: if (string.IsNullOrWhiteSpace(webFileServer)) { return; } WebDAVFileServer dav = GetWebDAVServer(webFileServer); dav.DeleteFile(fileName); break; case UtilConstants.ServerType.WebService: string physicsPath = CommonUtils.GetPhysicsPath(fileName); System.IO.File.Delete(physicsPath); break; case UtilConstants.ServerType.FTPService: break; default: break; } }
/// <summary> /// 文件下载 /// </summary> /// <param name="fileId">文件Id</param> public void DownLoad(string fileId) { fileId = UtilsHelper.Decrypt(fileId); AttachmentModel fileMode = ServiceProvider.AttachmentService.GetById(int.Parse(fileId)); UtilConstants.ServerType type = (UtilConstants.ServerType)fileMode.FileServerType; UtilsHelper.FileDownload(fileMode.FileAccessPrefix, fileMode.FileVirtualPath, fileMode.FileName, (UtilConstants.ServerType)fileMode.FileServerType); }
public static void DeleteServerFile(string fileName, UtilConstants.ServerType targetServer) { switch (targetServer) { case UtilConstants.ServerType.WebFileService: WebDAVFileServer dav = GetWebDAVServer(""); dav.DeleteFile(fileName); break; case UtilConstants.ServerType.WebService: break; case UtilConstants.ServerType.FTPService: break; default: break; } }
/// <summary> /// 客户端文件下载 /// </summary> /// <param name="webFileServer"></param> /// <param name="filePath">文件虚拟路径地址</param> /// <param name="targetServer"></param> /// <returns></returns> public static Stream FileDownload(string webFileServer, string filePath, UtilConstants.ServerType targetServer) { Stream input = null; switch (targetServer) { case UtilConstants.ServerType.WebFileService: WebDAVFileServer dav = GetWebDAVServer(webFileServer); input = dav.DownLoadFile(filePath); break; case UtilConstants.ServerType.WebService: input = new FileStream(ToolsLib.Utility.WebUtils.Resulve(filePath), FileMode.Open, FileAccess.Read, FileShare.Read); break; default: break; } return(input); }
/// <summary> /// 文件上传 /// </summary> /// <param name="webFileServer">当文件服务器发生变更,必须指定旧的文件服务器地址</param> /// <param name="inputStream">输入流</param> /// <param name="sourceFileName">待上传文件名称</param> /// <param name="targetFileName">文件虚拟路径地址</param> /// <param name="targetServer"></param> /// <returns></returns> public static AttachmentModel FileUpload(string webFileServer, System.IO.Stream inputStream, string sourceFileName, string targetFileName, UtilConstants.ServerType targetServer) { ToolsLib.FileService.WebDAVFileServer webDav; string newFileName = targetFileName; if (string.IsNullOrEmpty(targetFileName)) { newFileName += string.Format("{0}{1}", StrUtils.GetUniqueFileName(null), Path.GetExtension(sourceFileName)); } if (Path.GetExtension(targetFileName) == "") { newFileName = string.Format("{0}{1}", targetFileName, Path.GetFileName(sourceFileName)); } //if (!string.IsNullOrEmpty(targetFileName) && Path.GetExtension(targetFileName) == "") // newFileName += string.Format("{0}{1}", StrUtils.GetUniqueFileName(null), Path.GetExtension(sourceFileName)); AttachmentModel attachment = new AttachmentModel(); attachment.FileSize = Convert.ToInt32(inputStream.Length); attachment.FileName = Path.GetFileNameWithoutExtension(sourceFileName); attachment.FileServerType = (int)targetServer; attachment.FileVirtualPath = newFileName; attachment.FileAccessPrefix = webFileServer; attachment.UserName = ""; attachment.ServerIP = ""; attachment.Remark = ""; if (HttpContext.Current != null) { UserModel user = HttpContext.Current.Session["LoginUser"] as UserModel; if (user != null) { attachment.UserName = user.UserName; attachment.UserId = user.UserId; } } //Hashtable ht = new Hashtable(); //ht.Add("FileSize", Convert.ToInt32(inputStream.Length)); //ht.Add("FileName", Path.GetFileNameWithoutExtension(sourceFileName)); //ht.Add("FileServerType", (int)targetServer); //ht.Add("ServerIP", ""); //ht.Add("FileAccessPrefix", ""); //ht.Add("FileVirtualPath", newFileName); //ht.Add("UserId", 0); //ht.Add("UserName", ""); //ht.Add("Remark", ""); switch (targetServer) { case UtilConstants.ServerType.WebFileService: //if (string.IsNullOrWhiteSpace(webFileServer)) // ht["FileAccessPrefix"] = WebUtils.GetSettingsValue("WebFileServer"); //else //ht["FileAccessPrefix"] = webFileServer; attachment.FileVirtualPath = attachment.FileVirtualPath.Replace("\\", "/"); webDav = GetWebDAVServer(webFileServer); webDav.UploadFile(inputStream, attachment.FileVirtualPath); break; case UtilConstants.ServerType.WebService: attachment.FileAccessPrefix = ""; attachment.FileVirtualPath = ToolsLib.FileService.WebServer.UpLoadFile(inputStream, targetFileName); attachment.FileVirtualPath = attachment.FileVirtualPath.Replace(ToolsLib.Utility.WebUtils.Resulve("/"), "/").Replace("\\", "/"); break; case UtilConstants.ServerType.FTPService: attachment.ServerIP = WebUtils.GetSettingsValue("FtpHost"); break; default: break; } return(attachment); }
/// <summary> /// 文件上传 /// </summary> /// <param name="inputStream">输入流</param> /// <param name="sourceFileName">待上传文件名称</param> /// <param name="targetFileName">文件虚拟路径地址</param> /// <param name="targetServer"></param> /// <returns></returns> public static AttachmentModel FileUpload(System.IO.Stream inputStream, string sourceFileName, string targetFileName, UtilConstants.ServerType targetServer) { return(FileUpload(WebUtils.GetSettingsValue("WebFileServer"), inputStream, sourceFileName, targetFileName, targetServer)); }
/// <summary> /// 文件上传 /// </summary> /// <param name="webFileServer">当文件服务器发生变更,必须指定旧的文件服务器地址</param> /// <param name="sourceFileName">源文件物理地址</param> /// <param name="targetFileName">文件虚拟路径地址</param> /// <param name="targetServer"></param> /// <returns></returns> public static AttachmentModel FileUpload(string webFileServer, string sourceFileName, string targetFileName, UtilConstants.ServerType targetServer) { FileStream fs = new FileStream(sourceFileName, FileMode.Open, FileAccess.Read); AttachmentModel atta = FileUpload(webFileServer, fs, sourceFileName, targetFileName, targetServer); fs.Close(); fs.Dispose(); return(atta); }
/// <summary> /// 文件上传 /// </summary> /// <param name="webFileServer">当文件服务器发生变更,必须指定旧的文件服务器地址</param> /// <param name="postFile"></param> /// <param name="targetFileName">文件虚拟路径地址</param> /// <param name="targetServer"></param> /// <returns></returns> public static AttachmentModel FileUpload(string webFileServer, HttpPostedFileBase postFile, string targetFileName, UtilConstants.ServerType targetServer) { return(FileUpload(webFileServer, postFile.InputStream, postFile.FileName, targetFileName, targetServer)); }
/// <summary> /// 文件上传 /// </summary> /// <param name="postFile"></param> /// <param name="targetFileName">文件虚拟路径地址</param> /// <param name="targetServer"></param> /// <returns></returns> public static AttachmentModel FileUpload(HttpPostedFileBase postFile, string targetFileName, UtilConstants.ServerType targetServer) { return(FileUpload(WebUtils.GetSettingsValue("WebFileServer"), postFile, targetFileName, targetServer)); }
/// <summary> /// 客户端文件下载 /// </summary> /// <param name="webFileServer">可以为空,web文件服务器文件访问前缀,从web服务器下载</param> /// <param name="filePath">文件虚拟路径地址</param> /// <param name="newFileName">客户端显示文件名</param> /// <param name="targetServer"></param> public static void FileDownload(string webFileServer, string filePath, string newFileName, UtilConstants.ServerType targetServer) { string fileExtension = Path.GetExtension(filePath); string newFileNameExtension = Path.GetExtension(newFileName); //newFileName无后缀名或带有点号但却无后缀名 if (string.IsNullOrWhiteSpace(newFileNameExtension) || fileExtension != newFileNameExtension) { newFileName = newFileName + fileExtension; } newFileName = newFileName.Replace(" ", "_").Replace(",", "_"); using (Stream input = FileDownload(webFileServer, filePath, targetServer)) { WebServer.DownLoadFile(input, newFileName); } }