3.6May 14, 2013
- 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.
3.2.1December 4, 2012
- Fixed: A vulnerability regarding paths.
- Improved: The fix regarding "large file downloads and memory pressure" first applied in v3.1.1 is now undone as it had a side effect of limiting download speed to 800 kb/s. Now the download speed will be restored to the maximum. The actual source of the problem seems to be vanished and this may be related to an IIS hotfix.
3.2May 29, 2012
- Added: Touch support (especially for iOS devices iPad and iPhone)
Context menus will now work by touching and holding on an item.
Multiple items will be selected one by one or by touching and dragging over the items.
Rendering is optimized, all UI elements (including pane separator) will work correctly, best possible font will be used.
Downloads will work for supported files like image and text files.
Unfortunately due to restrictions of Safari Mobile Browser on iOS, uploading files will not be possible.
- Improved: Precision of context menus. Right-clicking on empty areas will be detected more correctly so the main context menu can be accessed more easily.
3.1.1April 19, 2012
- Fixed: Large file downloads (usually files bigger than 1GB) were sometimes interrupted to a memory pressure issue.
This was experienced usually when the download speed was falling behind the streaming speed which caused internal buffer of IIS to expand constantly.
With this fix, minimum (none or only few MBs) memory increase should be observed on the server during downloading large files.
3.1February 17, 2012
- 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.
3.0.8January 12, 2012
- Improved: Browsing huge folders is vastly improved (thousands of items will be displayed very quickly) with Browser rendering optimizations.
- Added: IsRefresh property to FileManagerTraversingEventArgs, FileManagerTraversedEventArgs, FileManagerListingEventArgs and FileManagerListedEventArgs to be able to distinguish
between a refresh and a new action.
- Added: New better icon (blue version of subfolder icon) for root folder.
- Improved: The look of grid columns so that they look more similar to the columns in Windows Explorer.
- Improved: Rendering icons in TreeView and GridView so that they are aligned more precisely respective to text.
- Improved: Used HTML5 markup for some auto-generated responses (error and expired page).
3.0.2October 20, 2011
- Added: UploadQueue property is now available in Uploaded event for accessing all the previously completed uploads in a queue.
Starting with v3.0, Uploaded event is raised per file as files are processed one by one by the upload dialog for better performance and statistics.
One other advantage is 2GB upload limit will effect files individually so there will be no limit for the total size of the files added in the upload dialog.
However the disadvantage was you had to do an action for every single file (eg. send multiple emails) as Uploaded event was raised for each file.
For solving this problem, this new property UploadQueue is added. "UploadQueue.IsCompleted" will allow you to do an action (eg. send an email) only
when the last item in the queue is processed, ie. when the queue ends. "UploadQueue.UploadInfos" will allow you to loop through all completed UploadInfo
objects for collecting information about previous uploads in the queue.
- Improved: Used gradients (instead of single color) for selections in file listing, folder tree and context menus for an improved Windows 7 look.
3.0August 10, 2011
- 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.
2.1September 3, 2010
- 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 .
2.0June 15, 2010
- 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.
1.9March 22, 2010
- 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.
1.7June 5, 2009
- 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.
1.6October 31, 2008
- Added: Advanced security system which allows assigning access control (permissions, quota and allowed file types) for each subfolder of a root folder separately.
- Added: New property "TemporaryFolder which will control the location of the temporary files that are created during actions like "Download As Zip". If omitted, temporary files will be created in the same folder where the action occurs.
- Improved: Flash upload compatibility with Adobe's latest flash player version 10.0.12.36.
- Fixed: Text could not be selected in the prompt dialog on IE.
- Improved: Enter and Esc keys now work same as the OK and Cancel buttons in the prompt dialog.
- Fixed: A warning message will be displayed on Paste, Compress, Extract All actions when the folder reachs its quota limit.
1.5.9July 18, 2008
- Fixed: Timeout problems occured with long lasting uploads in Flash upload mode.
- Improved: Detailed errors instead of generic errors will be displayed and upload event will be logged more accurately in Flash upload mode.
1.5.8July 4, 2008
- Fixed: Upload problem which occured in Flash upload mode when uploading more than one file at once. The error was occuring when one of the files took long time to finish, causing a timeout and stopping the overall upload with an error message.
1.5.7June 19, 2008
-
Fixed: "Download" and "Open with Web Browser" actions will also refresh the host page when when session expires.
-
Fixed: Files and folders with the "Read-only" attribute can now be deleted.
-
Fixed: Event was not raised when single file was uploaded in flash upload mode.
-
Changed: Removed the 2GB maximum limit of maxUploadSize property of FileTransfer section in web.config to allow overriding the value.
-
Changed: Used absolute path for the control's base url.
1.5.1May 28, 2008
-
Fixed: The control will refresh the host page instead of displaying a warning message when session expires.
-
Added: Dutch and German language files.
1.5April 30, 2008
-
Added: New upload method (Flash upload) which allows selecting multiple files at once in the file selection dialog where old upload method (Browser upload) allowed you to select only one file at a time. The method is controlled by the new property UploadMethod.
-
Added: AllowedFileTypes property to FileVistaRootFolder class. This property accepts a semi-colon separated list of file extensions (eg. "*.doc; *.xls") that are allowed to be uploaded to the root folder.
-
Added: Italian language file.
1.4.2March 6, 2008
-
Added: The control will now raise the following events: Browsed, Created,
Deleted, Renamed, Copied, Moved, Compressed, Extracted, Uploaded, Downloaded
and Failed.
-
Added: Fullscreen property for resizing the control to fit the browser window.
-
Improved: Safari compatibility.
1.3February 7, 2008
-
Improved: Rewrote and optimized the download module, resuming downloads is now
supported.
-
Improved: Rewrote and optimized the upload module for high performance and
better error handling. IIS7 Integrated Pipeline Mode is now supported.
-
Removed: Dropped UploadTempFolder property as it is no longer required,
uploaded files will be directly written to the target folder.
-
Added: Support for out of process session state.
-
Fixed: If modal dialog locks to mouse movement although the button is released
during dragging, clicking once again will stop it.
-
Changed: Modal dialog background mask will cover the control only instead of
the whole page.
-
Changed: Used version 0.85.4.369 of ICSharpCode.SharpZipLib.dll
1.0.8January 8, 2008
-
Fixed: A vulnerability, details will not be disclosed for security reasons.
-
Changed: "Download As Zip" action will be controlled by Download permission
only instead of Download and Compress permissions together.
-
Fixed: The control can be hosted in a page that is opened in an iframe.
-
Fixed: The control will not conflict with external CSS files found on the same
page.
-
Fixed: Prevented CSS warning messages in FireFox(Error Console) by removing
some non-standard CSS properties.
1.0.4November 21, 2007
-
Fixed: The upload module will not conflict with other modules or controls in
the host page.
1.0.3November 16, 2007
-
Fixed: After a file download was started, the control was not responding until
the download finished.
1.0.2November 14, 2007
-
Added: Debug property for running the control in debug mode which will enable
detailed error messages for troubleshooting.
-
Added: Fallback mechanism for language files, if the language file of a
specific culture (eg. de-CH.xml) is not found, the language file of its neutral
culture (eg. de.xml) will be loaded.
1.0October 24, 2007