public override string CopyFile(string path, string newPath) { try { string virtualPathAndFile = FileSystemValidation.ToVirtualPath(path); string virtualNewPathAndFile = FileSystemValidation.ToVirtualPath(newPath); string returnValue = DNNValidator.OnCopyFile(virtualPathAndFile, virtualNewPathAndFile); if (!(string.IsNullOrEmpty(returnValue))) { return(returnValue); } //Returns errors or empty string when successful (ie: NewFileAlreadyExists) returnValue = TelerikContent.CopyFile(virtualPathAndFile, virtualNewPathAndFile); if (string.IsNullOrEmpty(returnValue)) { string virtualNewPath = FileSystemValidation.RemoveFileName(virtualNewPathAndFile); FolderInfo dnnFolder = DNNValidator.GetUserFolder(virtualNewPath); var dnnFileInfo = new Services.FileSystem.FileInfo(); FillFileInfo(virtualNewPathAndFile, ref dnnFileInfo); DNNFileCtrl.AddFile(PortalSettings.PortalId, dnnFileInfo.FileName, dnnFileInfo.Extension, dnnFileInfo.Size, dnnFileInfo.Width, dnnFileInfo.Height, dnnFileInfo.ContentType, dnnFolder.FolderPath, dnnFolder.FolderID, true); } return(returnValue); } catch (Exception ex) { return(DNNValidator.LogUnknownError(ex, path, newPath)); } }
private void FillImageInfo(Stream fileStream, ref Services.FileSystem.FileInfo fileInfo) { var imageExtensions = new FileExtensionWhitelist(Common.Globals.glbImageFileTypes); if (imageExtensions.IsAllowedExtension(fileInfo.Extension)) { System.Drawing.Image img = null; try { img = System.Drawing.Image.FromStream(fileStream); fileInfo.Size = fileStream.Length > int.MaxValue ? int.MaxValue : int.Parse(fileStream.Length.ToString(CultureInfo.InvariantCulture)); fileInfo.Width = img.Width; fileInfo.Height = img.Height; } catch { // error loading image file fileInfo.ContentType = "application/octet-stream"; } finally { if (img != null) { img.Dispose(); } } } }
private void FillFileInfo(string virtualPathAndFile, ref Services.FileSystem.FileInfo fileInfo) { fileInfo.FileName = Path.GetFileName(virtualPathAndFile); fileInfo.Extension = Path.GetExtension(virtualPathAndFile); if (fileInfo.Extension != null && fileInfo.Extension.StartsWith(".")) { fileInfo.Extension = fileInfo.Extension.Remove(0, 1); } fileInfo.ContentType = FileSystemUtils.GetContentType(fileInfo.Extension); FileStream fileStream = null; try { fileStream = File.OpenRead(HttpContext.Current.Request.MapPath(virtualPathAndFile)); FillImageInfo(fileStream, ref fileInfo); } finally { if (fileStream != null) { fileStream.Close(); fileStream.Dispose(); } } }
private void FillFileInfo(Telerik.Web.UI.UploadedFile file, ref Services.FileSystem.FileInfo fileInfo) { //The core API expects the path to be stripped off the filename fileInfo.FileName = ((file.FileName.Contains("\\")) ? Path.GetFileName(file.FileName) : file.FileName); fileInfo.Extension = file.GetExtension(); if (fileInfo.Extension.StartsWith(".")) { fileInfo.Extension = fileInfo.Extension.Remove(0, 1); } fileInfo.ContentType = FileSystemUtils.GetContentType(fileInfo.Extension); FillImageInfo(file.InputStream, ref fileInfo); }
public override string StoreBitmap(System.Drawing.Bitmap bitmap, string url, System.Drawing.Imaging.ImageFormat format) { try { //base calls CheckWritePermissions method string virtualPathAndFile = FileSystemValidation.ToVirtualPath(url); string virtualPath = FileSystemValidation.RemoveFileName(virtualPathAndFile); string returnValue = DNNValidator.OnCreateFile(virtualPathAndFile, 0); if (!(string.IsNullOrEmpty(returnValue))) { return(returnValue); } returnValue = TelerikContent.StoreBitmap(bitmap, virtualPathAndFile, format); var dnnFileInfo = new Services.FileSystem.FileInfo(); FillFileInfo(virtualPathAndFile, ref dnnFileInfo); //check again with real contentLength string errMsg = DNNValidator.OnCreateFile(virtualPathAndFile, dnnFileInfo.Size); if (!(string.IsNullOrEmpty(errMsg))) { TelerikContent.DeleteFile(virtualPathAndFile); return(errMsg); } FolderInfo dnnFolder = DNNValidator.GetUserFolder(virtualPath); Services.FileSystem.FileInfo dnnFile = DNNFileCtrl.GetFile(dnnFileInfo.FileName, PortalSettings.PortalId, dnnFolder.FolderID); if (dnnFile != null) { DNNFileCtrl.UpdateFile(dnnFile.FileId, dnnFileInfo.FileName, dnnFileInfo.Extension, dnnFileInfo.Size, bitmap.Width, bitmap.Height, dnnFileInfo.ContentType, dnnFolder.FolderPath, dnnFolder.FolderID); } else { DNNFileCtrl.AddFile(PortalSettings.PortalId, dnnFileInfo.FileName, dnnFileInfo.Extension, dnnFileInfo.Size, bitmap.Width, bitmap.Height, dnnFileInfo.ContentType, dnnFolder.FolderPath, dnnFolder.FolderID, true); } return(returnValue); } catch (Exception ex) { return(DNNValidator.LogUnknownError(ex, url)); } }
public override string StoreFile(Telerik.Web.UI.UploadedFile file, string path, string name, params string[] arguments) { try { // TODO: Create entries in .resx for these messages Uri uri; if (!Uri.TryCreate(name, UriKind.Relative, out uri)) { ShowMessage(string.Format("The file {0} cannot be uploaded because it would create an invalid URL. Please, rename the file before upload.", name)); return(""); } var invalidChars = new[] { '<', '>', '*', '%', '&', ':', '\\', '?', '+' }; if (invalidChars.Any(uri.ToString().Contains)) { ShowMessage(string.Format("The file {0} contains some invalid characters. The file name cannot contain any of the following characters: {1}", name, new String(invalidChars))); return(""); } string virtualPath = FileSystemValidation.ToVirtualPath(path); string returnValue = DNNValidator.OnCreateFile(FileSystemValidation.CombineVirtualPath(virtualPath, name), file.ContentLength); if (!string.IsNullOrEmpty(returnValue)) { return(returnValue); } var folder = DNNValidator.GetUserFolder(virtualPath); var fileInfo = new Services.FileSystem.FileInfo(); FillFileInfo(file, ref fileInfo); //Add or update file FileManager.Instance.AddFile(folder, name, file.InputStream); return(returnValue); } catch (Exception ex) { return(DNNValidator.LogUnknownError(ex, path, name)); } }
public override string StoreBitmap(System.Drawing.Bitmap bitmap, string url, System.Drawing.Imaging.ImageFormat format) { try { //base calls CheckWritePermissions method string virtualPathAndFile = FileSystemValidation.ToVirtualPath(url); string virtualPath = FileSystemValidation.RemoveFileName(virtualPathAndFile); string returnValue = DNNValidator.OnCreateFile(virtualPathAndFile, 0); if (! (string.IsNullOrEmpty(returnValue))) { return returnValue; } returnValue = TelerikContent.StoreBitmap(bitmap, virtualPathAndFile, format); var dnnFileInfo = new Services.FileSystem.FileInfo(); FillFileInfo(virtualPathAndFile, ref dnnFileInfo); //check again with real contentLength string errMsg = DNNValidator.OnCreateFile(virtualPathAndFile, dnnFileInfo.Size); if (! (string.IsNullOrEmpty(errMsg))) { TelerikContent.DeleteFile(virtualPathAndFile); return errMsg; } FolderInfo dnnFolder = DNNValidator.GetUserFolder(virtualPath); Services.FileSystem.FileInfo dnnFile = DNNFileCtrl.GetFile(dnnFileInfo.FileName, PortalSettings.PortalId, dnnFolder.FolderID); if (dnnFile != null) { DNNFileCtrl.UpdateFile(dnnFile.FileId, dnnFileInfo.FileName, dnnFileInfo.Extension, dnnFileInfo.Size, bitmap.Width, bitmap.Height, dnnFileInfo.ContentType, dnnFolder.FolderPath, dnnFolder.FolderID); } else { DNNFileCtrl.AddFile(PortalSettings.PortalId, dnnFileInfo.FileName, dnnFileInfo.Extension, dnnFileInfo.Size, bitmap.Width, bitmap.Height, dnnFileInfo.ContentType, dnnFolder.FolderPath, dnnFolder.FolderID, true); } return returnValue; } catch (Exception ex) { return DNNValidator.LogUnknownError(ex, url); } }
public override string StoreFile(Telerik.Web.UI.UploadedFile file, string path, string name, params string[] arguments) { try { // TODO: Create entries in .resx for these messages Uri uri; if (!Uri.TryCreate(name, UriKind.Relative, out uri)) { ShowMessage(string.Format("The file {0} cannot be uploaded because it would create an invalid URL. Please, rename the file before upload.", name)); return ""; } var invalidChars = new[] {'<', '>', '*', '%', '&', ':', '\\', '?', '+'}; if (invalidChars.Any(uri.ToString().Contains)) { ShowMessage(string.Format("The file {0} contains some invalid characters. The file name cannot contain any of the following characters: {1}", name, new String(invalidChars))); return ""; } string virtualPath = FileSystemValidation.ToVirtualPath(path); string returnValue = DNNValidator.OnCreateFile(FileSystemValidation.CombineVirtualPath(virtualPath, name), file.ContentLength); if (!string.IsNullOrEmpty(returnValue)) { return returnValue; } var folder = DNNValidator.GetUserFolder(virtualPath); var fileInfo = new Services.FileSystem.FileInfo(); FillFileInfo(file, ref fileInfo); //Add or update file FileManager.Instance.AddFile(folder, name, file.InputStream); return returnValue; } catch (Exception ex) { return DNNValidator.LogUnknownError(ex, path, name); } }
public override string CopyFile(string path, string newPath) { try { string virtualPathAndFile = FileSystemValidation.ToVirtualPath(path); string virtualNewPathAndFile = FileSystemValidation.ToVirtualPath(newPath); string returnValue = DNNValidator.OnCopyFile(virtualPathAndFile, virtualNewPathAndFile); if (! (string.IsNullOrEmpty(returnValue))) { return returnValue; } //Returns errors or empty string when successful (ie: NewFileAlreadyExists) returnValue = TelerikContent.CopyFile(virtualPathAndFile, virtualNewPathAndFile); if (string.IsNullOrEmpty(returnValue)) { string virtualNewPath = FileSystemValidation.RemoveFileName(virtualNewPathAndFile); FolderInfo dnnFolder = DNNValidator.GetUserFolder(virtualNewPath); var dnnFileInfo = new Services.FileSystem.FileInfo(); FillFileInfo(virtualNewPathAndFile, ref dnnFileInfo); DNNFileCtrl.AddFile(PortalSettings.PortalId, dnnFileInfo.FileName, dnnFileInfo.Extension, dnnFileInfo.Size, dnnFileInfo.Width, dnnFileInfo.Height, dnnFileInfo.ContentType, dnnFolder.FolderPath, dnnFolder.FolderID, true); } return returnValue; } catch (Exception ex) { return DNNValidator.LogUnknownError(ex, path, newPath); } }