private Resource_FilesStatus UploadFile(HttpContext context, HttpPostedFile Httpfiles) { Resource_FilesStatus Resource = new Resource_FilesStatus(); if (Httpfiles != null && Httpfiles.ContentLength > 0) { //To verify that if the suffix name of the uploaded files meets the DNN HOST requirements Boolean retValue = FileSystemUtils.CheckValidFileName(Httpfiles.FileName); if (retValue) { //构造文件的存放目录 String FileName = Httpfiles.FileName; String tempName = WebHelper.GetStringParam(context.Request, "id", ""); String Extension = Path.GetExtension(FileName); String leftName = FileName.Replace(Extension, ""); String FileWebPath = String.Format("{0}PowerForms/Multiplefiles/{1}/{2}/{3}-[{4}]{5}", PortalSettings.HomeDirectory, ModuleId, DateTime.Now.ToString("yyyyMMdd"), leftName, tempName, Extension); String FileServerPath = context.Request.MapPath(FileWebPath); //构造文件对象 FileInfo Savefile = new FileInfo(FileServerPath); //文件夹构造 if (!Savefile.Directory.Exists) { Savefile.Directory.Create(); } //文件是否存在||存在的话需要重新构造名称filename_2.txt Int32 FileIndex = 2; while (Savefile.Exists) { FileWebPath = String.Format("{0}PowerForms/Multiplefiles/{1}/{2}/{3}_{4}-[{5}]{6}", PortalSettings.HomeDirectory, ModuleId, DateTime.Now.ToString("yyyyMMdd"), leftName, FileIndex, tempName, Extension); FileServerPath = context.Request.MapPath(FileWebPath); Savefile = new FileInfo(FileServerPath); FileIndex++; } //构造需要返回的信息 Resource.name = FileName; Resource.size = Httpfiles.ContentLength; Resource.url = FileWebPath; Resource.type = Httpfiles.ContentType; //构造指定存储路径 Httpfiles.SaveAs(Savefile.FullName); } } else { //文件大小为空或者是0 } return(Resource); }
// Upload entire file private void UploadWholeFile(HttpContext context, List <Resource_FilesStatus> statuses) { for (int i = 0; i < context.Request.Files.Count; i++) { var file = context.Request.Files[i]; if (file != null && !String.IsNullOrEmpty(file.FileName) && file.ContentLength > 0) { Resource_FilesStatus Resource = UploadFile(context, file); statuses.Add(Resource); } } }
// Upload partial file private void UploadPartialFile(string fileName, HttpContext context, List <Resource_FilesStatus> statuses) { if (context.Request.Files.Count != 1) { throw new HttpRequestValidationException("Attempt to upload chunked file containing more than one fragment per request"); } var file = context.Request.Files[0]; if (file != null && !String.IsNullOrEmpty(file.FileName) && file.ContentLength > 0) { Resource_FilesStatus Resource = UploadFile(context, file); statuses.Add(Resource); } }
/// <summary> /// 复制文件 /// </summary> /// <param name="hpFile"></param> /// <param name="pmb"></param> /// <returns></returns> public static String CopyFile(Resource_FilesStatus Resource_File, PortalModuleBase pmb) { String WebFilePath = Resource_File.url; String SaveFilePath = pmb.MapPath(WebFilePath); FileInfo SaveFile = new FileInfo(SaveFilePath); String FileName = Resource_File.name.Replace(" ", "_"); if (FileName.IndexOf(@"\") >= 0) { FileName = FileName.Substring(FileName.LastIndexOf(@"\"), FileName.Length - FileName.LastIndexOf(@"\")).Replace(@"\", ""); } String Extension = Path.GetExtension(FileName).Replace(".", ""); //构造保存路径 String FileUrl = FileName; FileInfo file = new FileInfo(pmb.MapPath(String.Format("~/Portals/{0}/PowerForms/{1}/{2}", pmb.PortalId, pmb.ModuleId, FileName))); if (!file.Directory.Exists) { file.Directory.Create(); } int ExistsCount = 1; //检测文件名是否存在 while (file.Exists) { FileUrl = String.Format("{0}_{1}.{2}", FileName.Replace("." + Extension, ""), ExistsCount, Extension); file = new FileInfo(pmb.MapPath(String.Format("~/Portals/{0}/PowerForms/{1}/{2}", pmb.PortalId, pmb.ModuleId, FileUrl))); ExistsCount++; } //保存文件到文件夹 SaveFile.MoveTo(file.FullName); return(FileUrl); }