Improved: Temp file handling on Azure, from now on d:\home will be used as the base (%HOME% environment variable) so that the files are persisted and shared between multiple instances of a site.
This change should also solve this error which still occured on some Azure AppService instances:
The type initializer for ‘_v0g’ threw an exception. —> Could not load file or assembly ‘PortableEngine, Version=2.7.3.0, Culture=neutral, PublicKeyToken=a6f3cafa178e6038’ or one of its dependencies. The system cannot find the file specified.
Also the temp files and folders for all products will be always gathered under a subfolder named “GleamTech” (e.g. d:\home\GleamTech or c:\Windows\Temp\GleamTech).
Added: FileManager.ProductInfoRendered property for being able to prevent rendering of product info/copyright comment in html.
Fixed: Empty folders were not showing up when browsing inside of 7zip archives.
Improved: Updated Media Player.
Improved: Document Viewer stability.
Improved: Updated libraries.
Added: Azure Blob File System. You can now use an Azure Blob container like a regular folder on disk.
To create a root folder pointing to an Azure Blob container, you set the Location property like this:
rootFolder.Location = new AzureBlobLocation { //Leave path empty to connect to the root of the container. //For subfolders, path should be specified as a relative path //without leading slash (eg. "some/folder") Path = "", //Get these values from your Azure Portal (Storage Account -> Access Keys -> Connection String) Container = "myContainerName", AccountName = "myAccountName", AccountKey = "myAccountKey", //Optional: //These are the default values, usually you don't need to set/change them UseHttps = true, EndpointSuffix = "core.windows.net" };
Added: CheckboxSelectionEnabled property for forcing “Item check boxes” mode regardless of being detected
as a touch device.
Improved: Moved busy indicator from bottom status bar to breadcrumb navigation bar because
some browsers like Chrome show status tooltip on bottom left corner and hide the UI.
Fixed: When there were many video files in a folder, occasionally (on app start) the thumbnails would not
be loaded (infinite loading indicator). This happened due to a race condition in VideoThumbnailer.
Improved: Updated Media Player.
Fixed: When you referenced GleamTech DLLs and you populated all types in AppDomain like this:
var allTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(a => a.GetTypes()) .Where(t => t.IsPublic);
You would receive this error:
Method 'Clone' in type '_hB' from assembly 'Licensing, Version=1.3.0.0, Culture=neutral, PublicKeyToken=a6f3cafa178e6038' does not have an implementation.
Licensing.dll is fixed to prevent this error.
Fixed: When ASP.NET impersonation was used via <identity impersonate=“true” … /> tag in web.config, when accessing temporary folder impersonation was being reverted “just in case”. This will not be done anymore because it cause access errors in some cases.
More info about ASP.NET impersonation:
Actually the user in <identity> tag already has to have permissions on “Temporary ASP.NET Files” because ASP.NET runtime throws an error on startup so we can assume the user can already access if the application is running.
<identity impersonate=“true” /> (no user) impersonates IUSR when Anonymous Authentication is used and suprisingly IUSR is not member of IIS_IUSRS, only app pool identities are (via automatic injection). When Windows Authentication is used, this will be the logon user. So you are responsible for adding any impersonated user including IUSR to IIS_IUSRS group to grant “Temporary ASP.NET Files” access.
After adding IUSR to IIS_IUSRS group, you need to run “iisreset” in Administrator Command Prompt. This is because changes to user’s group membership are not effective until the next time the user logs on.
If you are running the app pool as a domain user, the rules change on the automatic injection of IIS_IUSRS token into the process at startup. Solution: Create a new active directory user group named “IIS_IUSERS” in Users OU. Then join your iis users to this group. After that, adding that user group to local IIS_IUSRS group solves your problem.
Improved: Document Viewer:
- Improved: Got rid of HTTP headers used in DocumentViewer when downloading the XPZ. Parameters will instead passed via regular querystring. This will probably fix some random “Invalid XPZ file” errors.
Fixed: Thumbnails sometimes appeared blank in FileManager especially in Chrome.
Also improved lazy loading of thumbnails with better “in viewport” detection.
Also fixed CTRL+F5 (or “disable cache” in developer tools) causing broken images issue.
Fixed: Search box label was not changing when changing folders and it was always displaying
the name of first root folder, although the search was done in the correct folder.
Fixed: Actions “Add to zip” and “Extract” could fail when dealing with zip files due to timeout.
Also fixed zip generation for some files of certain size (exact divisible of 64k).
Improved: Date column will be empty for folders with default/min date (e.g. 01/01/0001),
this is especially useful for AmazonS3 and Archive folders which usually does not have a valid/useful date.
Improved: Upload window: “Select files to be uploaded” label was truncated on high DPI.
Added Remove and Clear buttons for better touch support (alternative to context menu), removed Close button.
Improved: Updated Media Player.
Improved: Document Viewer:
Fixed: Errors before “please wait a moment” dialog was not displayed. Also downloading indicator animation
(blue rectangle) was not displaying (the one after “please wait a moment” dialog).
Improved: Conversion accuracy for WordProcessing, Spreadsheet, Diagram formats.
Fixed: License domain check for 3 letter domains failed as they were mistakenly treated as TLDs.
Possible “Request is not available in this context” on probably earlier .net 4.0 versions when license key is set.
Changed: Licensing model. From now on, the license types are Professional, Enterprise, Distribution and Source. Your existing license type (Developer, Developer OEM, Site, Site OEM) will still be valid but license keys are changed so please go to https://www.gleamtech.com/upgrade and acquire a new license key if you want to use this version (or higher). If your one year maintenance has not ended, you will receive a new license key without a charge. After your maintenance has ended, you will be able to upgrade to only new license types.
Fixed: DocumentViewer was not displayed in IE11 with “Please use an HTML5 Compatible browser” error when IE Enterprise Mode was active. This is because Enterprise Mode emulates IE8 and DocumentViewer supports IE9+. Now DocumentViewer will force latest IE mode and will display as expected even in Enterprise Mode.
Improved: Real version will be shown in “Description” field of Visual Studio reference property window. This is the FileVersion of the DLL, Visual Studio by design shows AssemblyVersion in “Version” field of that window which confused some developers. AssemblyVersion is changed only when there is a breaking API change which requires a recompile so it’s not changed often, however FileVersion is changed for every release. This way, the developer can make sure exactly which DLL version is referenced from within Visual Studio (no need to go to Windows Explorer
and check file properties).
Fixed: Setting FileUltimateConfiguration.Current.TrialExtensionKey did not have effect immediately, it was delayed for about 20 minutes.
Added: Visual Studio Design View support. From now on, an image preview (placeholder) of FileManager control will be displayed in Design View. This preview is also resizable and it directly reflects Width and Height properties.
Fixed: Visual Studio Design View error: “Cannot create an object of type ‘GleamTech.FileSystems.Location’ from its string representation…”
Fixed: Amazon S3 root folders can now list more than 1000 items. Also improved listing performance of folders so you should not have any problems with huge buckets.
Fixed: When Amazon S3 bucket was empty, it caused an error.
Fixed: ClientLoading event was being fired too late, some functions like fileManager.onViewRefresh are registered as event handlers to internal components so even you override them later the components still referred to the old function reference, so Ext.override was not working. From now on ClientLoading will now fire at the start of initComponent and ClientLoaded at the end of initComponent. ClientLoading should be used for Ext.override calls, ClientLoaded should be called for adding actions, UI elements.
Fixed: IE11 on touch laptops were detected as a mobile device so Document Viewer was displayed in mobile mode. Improved mobile device detection to prevent this kind of issues.
Improved: Document Viewer. Some formats (e.g. common image formats and digital paper formats like XPS and EPUB) will be opened faster for first-time view. More formats can be viewed with Document Viewer.
Improved: Updated Media Player. Also updated the skin to youtube style.
Improved: Image and document caches will now group cached files for the same inputs in subfolders. Also the subfolder name will contain the original file name so it will be easier to locate the corresponding cached files for an input. The old cached files will be arranged into the new structure automatically one by one when they are accessed so no action is required for the developer.
Added: ImageViewerEnabled, MediaPlayerEnabled, DocumentViewerEnabled, ArchiveBrowsingEnabled properties so that you can disable the corresponding features if required. Also moved ImageThumbnailsEnabled and VideoThumbnailsEnabled properties from FileUltimateConfiguration to FileManager class so that they can be disabled on instance-level and not for whole application.
Improved: When access is denied to the cache path, a more user-friendly error message with instructions will be displayed. Also the physical path will not be included in the message for security purpose.
Improved: Updated GleamTech.Core for allowing access via IP for domain restricted licenses.
Fixed: In Web Site projects, when you added FileManager markup in an aspx page and built the web site, the build failed with the following error message (actually 3 error messages but main one is this, others are consequences): Cannot create an object of type 'GleamTech.FileSystems.Location' from its string representation.
Fixed: When FileManager was inserted in a page with AngularJS, clicking on context menu items did not work and instead caused a redirect to the home page. This was because AngularJS took over all <a href="#"> links on the page and as AngularJS considered them as a navigation and as there's no route specified it redirected to the home page. To be compatible with AngularJS, from now on menu items will use <a href="javascript:"> as links.
Fixed: When in details view, clicking on "Type" column did not sort the files.
Fixed: Unnecessary "Path cannot be discovered" error when a root folder had no permissions.
Fixed: Some problems continued on Internet Explorer and Microsoft Edge browsers after the new drag and drop feature. For example, columns on the file list were not clickable anymore. With this version all problems related to clicking should be fixed and clicking should feel more responsive again.
Fixed: Some UI quirks. For example error window was still displaying behind the background mask on some cases and minimize/restore state of a window was not stable (scrolling the main view behind the window caused it the window to minimize).
Improved: Made the default action of dragged items "Move to" even if the drag is made across view (eg. dragging from main view to folder tree). So "Copy to" action will be switched on only if CTRL key is pressed. This exactly mimics "Windows Explorer" behaviour.
Fixed: After you drag and drop in the folder tree, you could get an error message when you clicked the parent folder. When dragging, the tree was confused and changed the current selection to the dragged one (focused) although this was not visually reflected so we had a ghost selection.
Fixed: Prevented horizontal scroll of folder tree when dragging on the right edge and waiting for 500ms. The scroll helper should only work vertically for the folder tree.
Fixed: While dragging on the bottom of the main view or folder tree, the page would flicker.
Improved: Updated PDF icon with the most recent one. Also fixed large icons for ascx, ashx, asmx, aspx, config, css, htm, js, resx, xsd, xsl, xml, h extensions so they will not be pixelated (not upsized from small icon).
Fixed: Icons for 1 letter extensions were not shown (eg. .c and .h), also "Type" column showed "File" instead of e.g. "C File".
Added: Wildcard support for FileManagerAccessControl.Path property. Now you can use these wildcards in a path: The ? wildcard character matches a single character. The * wildcard character matches zero or more characters. The ** wildcard character sequence matches a partial path. For example, if you set Path="\**\*MatchMe*", this access control will appy to the folders containing MatchMe keyword in name under both root folder and under root folder's all subfolders (recursive).
Added: New Windows 10 UI theme.
Added: New flat/modern file type icons.
Added: New advanced Document Viewer with High Resolution. Text, fonts and vector elements are preserved and rendered in high-res with no rasterization. Zoom in as much as you want, your document will look great. Also performance in regards to the old viewer will be much better.
Added: Advanced Image Viewer with zooming and panning feature. The viewer can display several image formats including Photoshop files.
Improved: New faster image thumbnail generation with caching support.
Changed: Some API. Renamed ControlContext to FileUltimateConfiguration, use FileUltimateConfiguration.Current to change global configuration. Removed FileManager.LicenseKey property, use FileUltimateConfiguration.Current.LicenseKey instead. Routes can be re-added via FileUltimateConfiguration.RestoreRoutes.
Changed: Separated GleamTech.FileUltimate.dll into multiple assemblies as some features are now also separate products. You only need to reference GleamTech.Core.dll and GleamTech.FileUltimate.dll in your project, the other DLLs in the same folder GleamTech.ImageUltimate.dll, GleamTech.VideoUltimate.dll and GleamTech.DocumentUltimate.dll are assemblies for the new products with the same name and also FileUltimate depends on them for some of the features. Msbuild or Visual Studio will automatically copy these 3 DLLs along with the main file GleamTech.FileUltimate.dll to your bin folder during build so they don't need to be referenced directly. Note that even without these 3 DLLs, FileUltimate will work but it will just turn off the corresponding features such as generating image or video thumbnails or the document viewer. So with this new modular approach, you can opt-out of the features you do not need by excluding one of the DLLs.
Improved: Many minor fixes and performance improvements.
Added: Amazon S3 file system. You can now use an Amazon S3 bucket like a regular folder on disk.
Improved: FileManagerRootFolder.Location property is now of type Location class instead of string. You can still assign a string to this property as it's automatically casted so this is not a breaking change. The advantage of this special Location class is that you can now set it directly to an instance of PhysicalLocation or AmazonS3Location (more will be available in the future) classes. For instance this line:
rootFolder.Location = "Type=AmazonS3; Bucket Name=mybucket";
is same as this line:
rootFolder.Location = new AmazonS3Location { BucketName = "mybucket" };
This means you don't need to bother with formatting location strings correctly (eg. guessing property names) Except in aspx markup, you will still need to use strings which look like connection strings if you need to set advanced properties. Also note that this line:
rootFolder.Location = "c:\some\folder";
is same as this line:
rootFolder.Location = "Type=Physical; Path=c:\some\folder";
and also same as this line:
rootFolder.Location = new PhysicalLocation { Path = "c:\some\folder" };
So as in previous versions, setting location to a path string directly means it's a physical location by default.
Added: Media Player which can open and play video files (mp4, m4v, f4v, mov, flv, webm, ogv and on some browsers mp4v, 3g2, 3gp, mkv) and audio files (mp3, aac, m4a, f4a, ogg, oga, vorbis). Media Player will first try Html5 video feature of the browser and if not supported it will try Flash mode. If a media format is not playable on the browser, media player will prompt the user to try opening the file directly.
Fixed: When opening a video file of format like avi or wmv on IE, Windows Media Player was not able to play the file. From now on, Windows Media Player (or other players) will be able to stream the opened file without any problems.
Added: Assigned file icons and thumbnail generation to some additional media formats which the new Media Player supports.
Improved: When downloading a single file, resuming in the browser will be possible (again like older versions v3.x).
Added: ArchiveFileSystem which supports these archive formats: zip, 7z, rar, tar, gz, tar.gz (tgz), tar.bz2 (tbz, tbz2). From now on, the contents of these archive formats can be browsed just like regular folders. This is similar to "Compressed Folders" in Windows Explorer but for all archive formats not just for zip format. In addition, it supports displaying thumbnails while in archive and browsing nested archive files so it's more advanced than Windows Explorer's feature. The zip files can be modified but other formats are read-only as of current version. For example, you can directly upload into zip files or download files directly from all archive files. You can now use "Extract all to" or "Extract all here" actions for all archive types and not just for zip files. As archives are treated like regular folders, you can also use Copy/Cut/Paste actions to extract specific files and folders. When you browse a folder which contains archive files, these will be displayed like a folder (but with their specific archive icon) in the folder tree (navigation pane). Added better icons for all supported archive formats to be consistent with the original zip file icon.
Fixed: The browser was freezing when opening large folders (> 10,000 items) even in "Details" view layout.
Improved: When opening a folder with more than 1,000 items, the view layout will be automatically changed to "Details" as it's the fastest view layout (it renders only visible rows). Other view layouts will be also disabled as they will slow down the browser after 1,000 items and they will be actually useless for browsing that many items.
Fixed: On some servers, when pressed on upload button on the upload window, "Strong-named signed assemblies must specify a public key in their InternalsVisibleTo declarations" error was displayed.
Fixed: SortRootFolders property when set to false was not working as expected.
Improved: Some minor issues are fixed and improvements are made.
Added: Long path (upto 32,000 characters) support. Normally paths upto 260 characters were supported due to limitations of the .NET framework. From now on, it's possible to browse very long paths (very deep folders) and do any action in them without any error.
Added: Abstracted file system so adding new types of file systems will be easier. So managing files in a database or in a zip file will be possible. In next versions, we plan to first add support for zip files and other popular archive formats like rar, 7z, tar etc.
Improved: Path security. In previous versions, leaking underlying physical paths in error messages to the user was prevented for most cases. With this version, all cases are handled as file system is abstracted and isolated.
Improved: Quota handling. From now on, you can not break the limit in subfolders of a root folder with quota.
Improved: Finding copy name for existing files. For example, if "Image (2).jpg" exists "Image (3).jpg" will be created and not "Image (2) (2).jpg".
Improved: Upload speed for Html4 method vastly (12x-14x faster). Although Html4 method is not used too frequently as it is the last fallback method (Html5 -> Silverlight -> Flash -> Html4), this improvement will be useful for old browsers.
Added: New property InitialFolder which specifies the folder that should be selected and displayed initially. It should be set to the full path of the folder like "RootFolderName:\Some\Folder". If omitted, the first root folder will be selected automatically just like the default behaviour in previous versions.
Changed: Renamed MaxZipFileSize property to MaxSizeToCompress to imply its purpose better, ie. limiting maximum size to compress (per action). This property is usually used to prevent users creating large zip files (or other compressed archive files in future) which is CPU intensive. The name is changed as it will not be a zip-only setting in the future and also as it actually limits the total size of the input files rather than the final size of the generated zip file.
Added: New property LimitDiskUsage to FileManagerAccessControl. This property is only useful when set to false to override the quota setting of the parent folder, ie. when you need unlimited disk space in a subfolder of a parent folder with limited disk space. When Quota property is set, LimitDiskUsage is set to true implicitly.
Improved: Many minor issues are fixed and improvements are made.
Added: Built-in impersonation support. RootFolder locations can be specified with user credentials.
No more web.config settings are required to connect as a specific user or as the IIS authenticated user to a path.
For connecting as a specific user to a path (usually network paths), location should be specified with credentials in this format:
Path=\\server\share; User Name=USERNAME; Password=PASSWORD
Path can be UNC or local.User Name can be speficied as Domain\User, User@Domain (UPN format), MachineName\User or User (local user). If a value contains semi-colon character, that value should be enclosed in single quotes (eg. Password='PASSWORD') or double quotes (eg. Password="PASSWORD").
If IIS authentication is used for this site, location can be specified like this to connect as the already authenticated user:
Path=\\server\share; Authenticated User=true
-
Improved: Control load time (especially when using UNC path and impersonation) at first page load.
RootFolders will all show as expandable except if ListSubfolder permission is denied.
No physical file system check will be done till page loads or user clicks expander icon.
Improved: Made error messages more clear when a folder is not accesible due to permissions or not actually exists.
Changed: Colon (:) character is no more allowed for root folder names.
Added: Resizable and ResizeHandles properties to allow user resize the control by dragging sides.
Added: DownloadWithChunkedTransferThreshold property which should be set only if you have problems downloading large files due to your environment limitations (reverse proxy etc.). For example, Microsoft Forefront UAG can not parse http reponses when content-length is larger than 2GB (throws HTTP 500 due to 32-bit integer limit) so it should be set to 2GB for UAG.
Fixed: When Width was set as percentage unit, the control was not being resized like v3.x when browser was resized.
Fixed: Prevented overriding host page's Body tag style like font-size.
Improved: Made all file types open in current window on iOS. Mobile safari is very restrictive with pop-ups and causes scrolling problems so it's better to open files in the same window to make sure native file viewers (images, PDF, DOC, XLS etc.) work properly.
Fixed: In some cases, lazy thumbnail loading was not initiated on browser resize causing some thumbnails to appear blank.
Fixed: Some vulnerabilities regarding paths (CVE-2014-8788 and CVE-2014-8789).
Added: ts and m2t extensions for video thumbnails.
Fixed: Too many Failed events were being raised when GetThumbnail action failed.
Added: On error message box, added a property tree for drilling down exception details easily.
This is only useful for source code users as "details" section is only visible
when the control is built with Debug configuration.
Added: Swedish language.
Fixed: In IE11, when FileManager tag was placed inside a ASP.NET form, download and open actions stopped working due to a javascript error.
Fixed: Blank page problem on environments where the url is not allowed to contain parentheses. This caused the language file not to be loaded. One example environment is Microsoft UAG which did not have ( and ) as legal characters in URL by default so it rejected the language file request.
Fixed: When referencing FileUltimate in an ASP.NET MVC project, the Html.BeginForm method generated wrong url (resource.ashx) because of FileUltimate's own route table.
Fixed: In IE8, ribbon was displayed blank due to "tagName is null or undefined" error when some of the buttons were hidden due to permissions. This was not observable when the folder had full permissions.
Fixed: Text wrapping and sizing of ribbon buttons for non-english languages. Also made height of ribbon tabs consistent.
Fixed: When referenced a 3rd party library like Newtonsoft.Json.dll which is already bundled in GleamTech.FileUltimate.dll, class name conflicts occured.
Fixed: License key was not accepted with "Invalid license key" error when FIPSAlgorithmPolicy was enabled in Windows. This Windows setting is usually enabled by default especially for government agencies.
Fixed: In IE8 and IE9, folder was automatically selected/loaded when right clicked (context menu) in the navigation pane.
Fixed: On iOS, you could not touch and select a folder in the navigation pane.
Fixed: On iOS, drag-selector was not displayed properly (blue borders were separated from the center). Also improved the speed of drag-selector on other browsers.
Fixed: On iOS, sometimes image thumbnails were not loaded. This was due to touch scroll not being detected and thus lazy-image loading was not activated.
Added: On iOS, "Download" and "Open" commands did not work at all because of the popup blocker. Also In IE11, popup blocker was activated on "Open" command. To solve the popup blocker problems, added a new file viewer window. When you "Open" a file, a new browser window will not be opened anymore, instead the contents will be displayed in this custom window. If the file is an image, then it will be displayed nicely i.e. the image will be centered vertically and horizantally. Also on iOS, it is possible to touch scroll this image if it's bigger than the window. Note that you are still dependent on the browser for file types that can be displayed. If the browser can not open a file type, then it will prompt for open/download as usual.
Completely redesigned and rewrote the UI to resemble Windows 8 / Windows Server 2012 File Explorer
Added: A ribbon bar with large and small buttons for each command. Ribbon bar can be also collapsed.
Added: A new navigation (folders) pane which is collapsible and removable. In collapsed mode, when clicked on title, it can slide-in.
Added: A multi-view which supports 6 different view layouts:
Extra large icons, Large icons, Medium icons, Small icons, Details and Tiles
Details layout is similar to the grid in previous versions but has more features:
Columns can be moved, resized and removed
Ability to display thousands of items fast by only rendering items that are visible.
When there are more than 1000 items in current folder, it's recommended to use this layout as it will not slow down the browser.
Extra large icons, Large icons, Medium icons and Tiles layouts can display thumbnails.
Thumbnails are lazy-loaded i.e. the image is requested from the server when the item is first visible so
this improves performance when there are lots of images in the folder.
Added a drag selector to allow easy selection of items which works in all view layouts.
Added a new tooltip which displays detailed info when you hover on an item.
Ability to switch between view layouts quickly any time via "Ribbon -> View tab" or via the status bar.
Added: New icons for every file type. 5 different sizes (256, 96, 48, 32 and 16) of each file icon is added so that they display perfectly in each view layout.
Added: Image thumbnails will be displayed for these file types:
"bmp",
"gif",
"png",
"jpg", "jpeg", "jpe", "jif", "jfif", "jfi", "exif",
"tif", "tiff", "tff",
"psd"
Even on shared hosting (medium-trust), thumbnails can be generated for all types except psd (Photoshop file). Also on medium-trust, thumbnails will be generated for gif files but the quality of the thumbnails will be lower.
Added: Video thumbnails will be displayed for these file types:
"avi",
"mp4", "m4v", "mp4v", "3g2", "3gp",
"mpg", "mpeg", "mpe", "vob",
"mov",
"mkv",
"wmv", "asf",
"m2ts", "mts",
"flv"
The duration of the video will also be added as an overlay at the bottom-right of video thumbnails (similar to YouTube). This is for giving quick information on how long the video is and also for being able to distinguish between video and image thumbnails at first sight.
On shared hosting (medium-trust), video thumbnails cannot be generated.
Added: When a thumbnail cannot be generated for a file either due to hosting permissions or file corruption, then the icon for that file will displayed. Icons for all file types whether it is thumbnail-able or not are already provided.
Added: Commands in ribbon bar or context menus will be visible only when that folder allows the corresponding permission. In previous versions, a disallowed command was greyed-out but still visible. Hiding the disallowed commands completely will prevent the confusion of users and allow administrators to see what's allowed or disallowed at first sight.
Added: A status bar (bottom bar) which displays the number of items in current folder and number of selected items. When an action (request to server) takes longer time than a certain amount, the spinning busy animation will be also displayed here.
Added: Number formatting according to the current culture. In previous versions, dates were already formatted. Now numbers such as file size will also be formatted.
Added: Renamed Language property to DisplayLanguage and added new property FormatLanguage.
DisplayLanguage property specifies the language of the user interface.
FormatLanguage property specifies the language used for date and number formatting.
Added: New property ViewLayout which specifies the initial view layout type to display files and folders. The default value is LargeIcons.
Added: Completely redesigned the access control system. Different access controls can be specified for a root folder and its subfolders with FileManagerAccessControl class. Previously, this was possible to do in code (via FileManagerRootFolder.AddSubfolder method) but now it's also possible to do in markup and object model is improved and made consistent between code and markup. Permissions can now be set as "Allow" or "Deny" separately just like Windows permissions. This will allow more flexibility. Restricted file types can be set as "Allow" or "Deny". It's now possible to hide specific subfolders by denying all permissions. By default subfolders will inherit from parent but it's possible to stop inheritance at any level by adding an explicit access control.
Added: Completely redesigned the upload methods. New upload methods are Html5, Silverlight, Flash, Html4 in priority order. All methods provide accurate progress information.
Html5: This is the best one as it supports unlimited file size (via chunking), multiple selection at once and drag & drop. This method is available on IE 10 and all other recent browsers. You can also drag and drop files from local folders to the upload window with this method.
Silverlight: This is the second best one as it's similar to Html5 except it does not support drag & drop currently. Silverlight method can be a good alternative when users can not upgrade to browsers that support Html5. This method is also good for large files like Html5.
Flash: This supports multiple selection at once but it does not work well with large files due to problems in Adobe plugin. If you are uploading files larger than few hundred MBs of files, it will probably fail before even starting the upload. Flash plugin loads the whole file into memory which is inefficient and which causes a delay before starting the upload. However this method is different than the Flash method in previous versions as it will now retain cookies and authentication headers. This method should be only used when uploading small files and multiple selection at once is required.
Html4: This method works on all browsers. Browser and Ajax methods in previous versions is merged into this method. This method always provides progress information even if the application is hosted on a shared host (medium-trust) unlike previous Ajax method which required full-trust. This is the only method that chunking the file is not possible so there is a maximum limit of 2GB per file imposed by IIS and ASP.NET.
-
Added: When uploading a file that already exists, "Upload Conflict" dialog will be displayed. The user can either, upload and replace the file, skip the file or upload and keep both files by using an alternative name (eg. file(2).jpg). It's also possible to "do same for all conflicts" when there are multiple conflicts in the queue.
Added: Permission checks will be done before actually uploading the files and rejected files will be displayed beforehand. User can see the rejection reason by clicking on "Rejected" link in the status column.
Added: When uploading multiple files, the uploader will continue the other files even if a file fails. User can see the error details by clicking on "Failed" link in the status column.
Improved: During uploading, if user tries to navigate away from the page (eg. goes to new url or drops a file into the browser), interrupting will be prevented with a dialog window asking to leave or stay on the page.
Improved: Upload dialog will hide automatically on completion if there is no error and all the uploaded files will be automatically selected in the file listing for easily locating them.
Improved: Uploading and Uploaded events will be raised per group rather than per individual files. However both events provide properties for iterating all files and details in a group. It's possible to reject individual files with a reason in an Uploading event. More detailed upload information will be available in the Uploaded event. Status for each file such as Rejected, Skipped, Canceled, Failed, Completed and status reasons will be available. Also the total uploaded size, elapsed time and transfer rate will be available. Note that Failed event will not be raised when a file in a group fails from now on as the uploader will continue the other files even if a file fails. Instead, all errors will be saved and will be available when Uploaded event is raised at the end of a group.
Added: File/Folder chooser mode to FileManager control so that you can use the control as a Open/Pick or Save dialog in your web application. In chooser mode, "Choose" and "Cancel" buttons will be displayed at the bottom of the control and double-clicking on a item of allowed type will choose that item instead of doing the default action (download/explore). After user chooses items or cancels, the control hides and raises a client-side chosen event with event arguments.
Improved: Compatibility with IE 10.
Improved: Resources like js and css files will be always gzipped independent of IIS settings for extra performance. The pages hosting the FileManager control will load faster.
Improved: Prevented some unnecessary Failed events raised such as "Only http method POST is accepted" or "The remote host closed the connection". First error was caused by Firefox's built-in image viewer sending a second request for the same image or users/search bots trying to open temporary download URL manually. Second error was sometimes caused when users canceled an ongoing download.
Improved: Many minor issues are fixed and improvements are made.
Fixed: The JavaScript error below which occured only on IE 8 (it didn't occur in IE 8 compatibility mode of IE 9):
"HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)" Suggested workaround (adding a div element before the control) will not be necessary after this fix so it should be removed.
Fixed: When ID property of <GleamTech:FileManager> tag was missing, the control was not loaded/displayed. After this fix, even the ID property is missing, an ID will be auto-generated like "fileManager", "fileManager2", "fileManager3" etc depending on the number of FileManager controls on the host page.
Fixed: Incomplete/corrupted downloads problem in zip streaming feature (first introduced in v3.0.0) which occured when downloading large files due to a timeout issue. The problem did not occur with single file downloads. Note that zip streaming is active only when multiple items are downloaded or "Download As Zip" action is used explicitly. Previously suggested web.config workaround (executionTimeout setting) will not be necessary after this fix so it should be removed.
Fixed: Streamed zips (even small ones) could not be opened/unzipped with Archive Utility on Mac, the zip file structure is fixed to be compatible with this utility. Note that when the size is larger than 4GB, zip file must be generated in zip64 format instead of the regular format. Some older unzippers like Windows XP Explorer and Mac Archive Utility (maybe not newer versions) do not support zip64 format so you may need to use a more recent unzipper (Mac Unarchiver, Winzip, Winrar etc.) for files larger than 4GB on these systems.
Improved: Zip files will be generated with no compression (files are stored) during zip streaming so that CPU usage is minimized. There are two additional advantages due to this improvement other than server performance. First advantage is, we can simulate the zip generation and determine the zip file size exactly (and fast) before streaming. This was not possible previously so the browser showed indeterminate progress information (chunked transfer encoding) during download due to lack of knowing the final file size. So now the browser will show the exact zip file size on its "Open/Save As" dialog immediately after user clicks "Download As Zip" and it will show a determinate progress information on "Downloading" dialog. In short, zip streaming will behave exactly like single file downloads. Second advantage is, the users will be able to extract the received zip file very fast as there is no compression. This would be helpful when downloading large files and folders. Users who want to actually compress files should use "Add To Zip" action instead of "Download As Zip" and then download the generated zip file.
Fixed: Some unnecessary Failed events were being raised when the download was interrupted mostly due to user cancelling the download.
Improved: On Upload dialog, Ajax and Flash menu items will be disabled on the main context menu's submenu "Upload Method" when these methods are not available to prevent confusion for the user. Flash menu item will be disabled when Adobe Flash Player is not found or enabled in the browser. Also "Add" button will be enabled only when Flash object is loaded completely to prevent user clicking the button too early. Ajax menu item will be disabled when the application is running on ASP.NET medium trust which does not allow Ajax upload method. Note that these upload methods were already disabled and degraded to the next best method when not available. This improvement is only for UI to report the available upload methods to the user correctly.
Improved: Moved and organized all FileUltimate related Web.config settings to a separate file "FileUltimate/Web.config" for easier deployment and more security. Only exception is the upload module setting which has to still exist in the application's root Web.config file due to ASP.NET's handling of http modules. FileUltimate settings like handler urls and max upload size will be determined dynamically via parsing "FileUltimate/Web.config" file. For security reasons, maxAllowedContentLength and maxRequestLength settings will be increased to 2GB only for the upload handler. The default IIS and ASP.NET limits is sufficient for other handlers so keeping them at default values will protect against DoS attacks.
Changed: Renamed resource folder under App_GlobalResources from FileUltimate to FileUltimateResourceStore.
Fixed: The below error that may occur when trying to download a file which was opened in some rare applications which locks the file in write-only mode:
"The process cannot access the file ‘file name’ because it is being used by another process"
Fixed: All CSS files are minified like JavaScript files now.
Almost rewritten both client-side and serder-side code for maximum performance, stability and flexibility. Client-side code is now organized with namespaces like GleamTech.JavaScript.UI and classes. This organized structure will provide a proper client API and allow new features to be added more easily. Changed server-side namespace to GleamTech.Web.UI.
FileUltimate is now the general product name of the "ASP.NET File Handling Controls" library. The main control is renamed from FileUltimateControl to FileManager. Other standalone controls (eg. FileUploader) may be added to FileUltimate in future versions.
Completely new UI with Windows 7 look and feel. All UI images are updated. All file type icons are updated and lots of new ones are added.
Almost rewritten and modularized upload feature. UI of upload dialog is vastly improved. Even with browser upload method, detailed progress information will be shown. It’s possible to change upload method via context menu.
Improved: Dropped support for IE 6. Minimum required version for Internet Explorer is now 7. Optimized for new generation of browsers like IE 9, Firefox 5, Chrome 12 and Safari 5.
Improved: "Download As Zip" action now directly streams the zip file that is being generated to the client. So the user will not have to wait for the whole compressing to complete before downloading. The user will see browser's "Open / Save As" dialog immediately and receive the file on the fly as it is being generated.
Added: Multiple instances of the control on the same page is now possible.
Added: ShowOnLoad property to control visibility of the control on load.
Added: ModalDialog and ModalDialogTitle properties for displaying the control within a modal dialog.
Added: ClientLoaded property to specify the client-side event which is raised on load.
Added: SortRootFolders property to control sorting order of root folders.
Changed: Dropped Style property and added Width and Height properties to specify the dimensions of the control.
Changed: Dropped FullScreen and added FullViewport property for fitting the browser's viewport.
Product name is changed from FileVistaControl to FileUltimate so that the control product is not confused with the end-user product (FileVista).
Single DLL deployment. FileUltimate is from now on, a WebControl and not a UserControl (ascx control). All resources and code are embedded into the single file GleamTech.FileUltimate.dll for easy and robust deployment.
FileUltimate now targets .Net framework 4.0. This means your host project should run under ASP.NET 4.0. We will not support older framework versions from this version on.
Developed a custom embedded resource manager which can combine resources like scripts.
Vastly optimized loading speed of the control by making use of combined scripts and reducing the number of requests.
Optimized zip features.
Changed some namespaces and type names.
Optimized download feature.
Added: ShowFoldersPane property to control visibility of the Folders pane.
Added: Embedded languages files and the css file can be overridden with custom files, see readme file for more information.
Fixed: When a subfolder is copied or moved to a root folder, every folder was displayed twice in the Folders pane incorrectly due to a refresh problem.
Fixed: "The destination folder is a subfolder of the source folder" was being raised incorectly when copying/moving a folder eg. named "Test" into a folder named eg. "Test Folder".
Improved: Reorganized event arguments for Uploading and Uploaded events and restructured UploadedFile class. UploadedFile.FileHash property will provide the calculated hash code of the uploaded file in all three upload modes (Flash, Ajax and Browser) correctly .
Added: FileVistaControl will be able to run under ASP.NET "Medium" trust level from now on. Many shared-hosting companies (eg. GoDaddy) force Medium trust level on their servers for security reasons and FileVistaControl will be compatible with them now.
Added: A third upload method and optimized existing upload methods. Renamed the old upload method "Browser" to "Ajax" and the new upload method to "Browser". New "Browser" method will allow uploading even in medium-trust level by sacrificing the realtime progress information. "Ajax" method (formerly "Browser") still needs higher permissions due to displaying the realtime progress information so it will not be available in medium-trust level. Note that the best possible upload method "Flash" will now work in medium-trust level.
Added: New property "ShowSystemTypeDescriptions" for forcing to show file and folder type descriptions from the system's registry. If not enabled (default behaviour), then simple (but current language dependant) type descriptions (eg. EXE File) will be shown. Under Medium-Trust, registry access will not be possible so even if this property is enabled, simple type descriptions will be shown.
Fixed: Modal dialog background rendering error occured for certain layouts in IE7 only (like in Example 3)
Fixed: Refresh problem which occured only when you paste after entering into the subfolder.
Fixed: Allowed file types checking was failing due to checking the full path instead of the file name.
Fixed: Firefox 3.6 context menu event handling problem.
Improved: Control and context menus rendering, calculating dimensions, automatic resizing with percentage values.
Changed: Added and changed some language strings in the language files with key numbers 315 till 317.
Added: Spanish, Catalan, Danish and Portuguese language files.
Added: Support for cookieless session state.
Added: Downloading files larger than 2 GB is now possible.
Added: New property "MaxZipFileSize" for limiting the size of the generated zip files on "Add to Zip" and "Download as Zip" actions. If this property is not set, then there will be no size limit for the zip files just like the previous behaviour.
Added: Detailed information (action size, remaining size and total quota) will be displayed when an action (Upload, Add to Zip, Extract and Paste) exceeds the quota limit of the folder.
Added: New property "ShowHiddenFilesAndFolders" for forcing to show hidden files and folders.
Added: New property "ShowSystemFilesAndFolders" for forcing to show system files and folders.
Added: New property "ShowFileExtensions" for forcing to show the extension part of the file names. When this property is enabled, the extensions will be shown and editable in the prompt dialog boxes too. For instance, on "Rename" and "Add to Zip" actions, changing the extension part is possible. The actions will fail if the new extension does not match the allowed types of the folder.
Added: Detailed information (file name, allowed file types) will be displayed when the result of an action (Rename, Add to Zip, Upload) does not match the allowed file types of the folder.
Added: The control will now also raise before events: Browsing, Creating, Deleting, Renaming, Copying, Moving, Compressing, Extracting, Uploading and Downloading. A before event can be canceled with displaying a message to the user. If a before event is canceled, the corresponding action will be canceled and the after event will not be fired.
Added: New property "FileListColumns" for accessing the columns of the file list. Currently only the size (number of characters) of the columns can be overridden.
Added: Context menus for the folder tree. It is now possible to do all actions by right clicking a folder in the tree.
Improved: Context menu for container folder will be opened when right-clicked on an empty area in the file listing. When right-clicked on the text (name or other properties) of an item row in the file listing, the item will be selected and context menu for the item will be opened. Removed "Tasks" link above the file listing as it's replaced with the context menu.
Improved: Mouse cursor will be shown as the pointer (hand) only when on a folder in the folder tree and not on the file listing or the toolbar buttons for a more standard UI.
Improved: Selected item name will be used as the zip file name instead of the generated names like "download-XXXX.zip" when downloading as zip.
Fixed: Download corruption with some files types like PDF when IIS dynamic compression is enabled.
Fixed: A confirm dialog box will be displayed when downloading as zip. This will prevent IE from showing the information bar and blocking the download.
Fixed: Adding files with the same names will not be allowed in the upload dialog.
Fixed: Add to Zip, Download, Cut and Copy actions will now also depend on Traverse and List permissions of the subfolders. These actions may access the contents of a subfolder so they should be checked against Traverse and List permissions.
Fixed: Quota limit will be checked before starting the actions (Add to Zip, Extract and Paste). If the total size of the action exceeds the quota limit, the action will be canceled. This will prevent the action from being completed partially. In previous versions, the action was being processed until a file's size exceeded the quota limit. This was causing partially extracted/pasted files.
Fixed: Quota limit will not be checked when moving items from a subfolder to a parent folder and vice versa unless the subfolder has an overridden quota setting. A parent folder's total size already includes the size of the subfolders so moving items within the parent folder can not effect the remaining quota size.
Fixed: An extension in allowed file types such as "*.jpg", was matching all extensions starting with "jpg" ("*.jpg1", "*.jpga" etc.) where it should match only "*.jpg"
Fixed: The control will now render properly when placed within an invisible container (eg. tab panels).
Fixed: Right-clicking (or CTRL + click) now opens the context menu in Firefox Mac. On Mac, Command + click will now allow multiple selection instead of CTRL + click as on Windows.
Changed: Added and changed some language strings with key numbers 304 till 316.
Fixed: Optimized the clickable area of the Add button in browser mode for cross-browser compability.
Fixed: Marked the new class FileVistaFolder as Serializable for the out of process session state.
Fixed: Upload dialog missing progress indication in Firefox 2.
Added: Hidden and system files/folders are filtered by default.
Added: 5 new upload related strings to the language files.
Added: French and Arabic language files.
Improved: Speed of file listing in the folder view and subfolder populating in the folder tree.
Added: New property "DisableFolderExpandableCheck" which can be set to true if you are experiencing slow load times with huge folders. When building the folder tree, the control calculates if a folder is expandable or not (ie. if it should have a plus sign or not). By setting this property to true, you can disable this calculation and improve loading speed of huge folders.
Fixed: If a root folder is inaccessible due to insufficient permissions or other problems, it will still be displayed in the folder tree. This will allow to ignore the root folder with problems and continue loading other available root folders in the list.
Fixed: Copying or moving a folder into its subfolder will not be allowed.
Added: Extensions of file names are hidden in the file listing.
Fixed: The default value of a root folder's AllowedFileTypes property is now "*" instead of "*.*". This will allow files without extensions by default when the property is not set to a specific value.
Added: When List permission is denied on a folder, an empty folder will be displayed instead of an error message so that other permitted actions can be still done in the folder. This way "blind uploads" and "traversing subfolders without showing files" will be possible.
Added: A root folder's AllowedFileTypes property will now restrict all file actions (List, Delete, Rename, Copy, Move, Extract, Compress and Download) and not only Upload action. This means only allowed file types will be visible and manageable in the file listing.
Added: Edit permission now controls overwriting of existing files during Extract action and editing of an existing zip file during Add to Zip action.
Fixed: Folder tree will be refreshed properly on Cut and Paste of folders.