The out-of-the-box functionality for uploading multiple files to a SharePoint Document Library relies on an ActiveX control (requiring special end user web browser security settings and/or confirmation dialogs), which is readily available without requiring further installation only on client computers that have at least one Microsoft Office 2007 application installed (and selected certain SharePoint-compatible client components when they installed that Office application, hidden in some crowded setup customization tree view). Once you get the out-of-the-box ActiveX bulk-file upload control to work for all your users, you can only upload multiple files from a single directory in one bulk upload: you cannot select files from various directories to bulk-upload in one go.
Once you decide that the out-of-the-box approach to bulk document uploads is too troublesome, or just not useful enough, for you or your users, UploadZen offers a robust and compelling alternative. UploadZen adds an Upload Multiple Files menu command to the Upload menu of all Document Libraries and other libraries.
When you click the Upload Multiple Files menu item, the UploadZen window (a ClickOnce Windows application) is launched right from the browser (no previous client-side installation required) and lets you immediately select any files and bulk-upload those to the library, as described in Walkthrough: Using UploadZen.
The UploadZen setup package (the roxority_UploadZen.zip file) is a zipped archive containing:
Run setup.exe and when the Welcome screen is displayed, click Next to start a series of system checks. To proceed with the installation, all system checks need to succeed:
Click Next and on the following screen, read and confirm the End-User License Agreement (EULA). Click Next to see all the Web Applications UploadZen will be deployed to. (The solution package contains no web application-scoped resources and can only be deployed or retracted globally, i.e. across the entire server farm.)
Click Next to start the installation and wait for the deployment jobs to complete. This process can take up to a few minutes.
After deployment has completed, review the installation log:
Once you have successfully completed the setup wizard, the UploadZen Upload Multiple Files menu item becomes available immediately in all Upload menus of any Document Library Views throughout the previously selected Web Applications.
UploadZen only works for SharePoint site visitors using Windows (XP or newer) and Internet Explorer (6.0 or higher) or Firefox (with the Microsoft .NET Framework Assistant installed). The UploadZen Upload Multiple Files menu item will be disabled (or hidden) for other clients.
As a minimum requirement for UploadZen to work for remote clients (i.e. your users), you need to:
Granting anonymous read access exclusively to this virtual directory is acceptable with regards to server security, since no sensitive information is ever stored underneath the help virtual directory, nor does it at all expose access to any server-side code anonymous users could ever invoke. Granting this anonymous read access is however also required for UploadZen to work, as the software is based on the Microsoft .NET Framework ClickOnce deployment technology, the integration of which with both SharePoint and remote Internet Explorer users with varying Windows versions, security and authentication settings more often than not simply does not work without making this simple, safe and proven-to-work adjustment.
For remote Internet Explorer users, the UploadZen Upload Multiple Files menu item is likely to produce only HTTP 401 error messages unless and until you take the above steps for all IIS Web Sites associated with your content Web Applications on all SharePoint web front-end servers — even though the menu item is already available in all Document Library Upload menus throughout your server farm immediately after solution installation.
While running, the UploadZen window will attempt to access via HTTP / SOAP, under the user-specified credentials, the following XML Web Services:
It is the responsibility of the administrator deploying UploadZen to make sure that remote users are granted access to these interfaces. In most environments, completing step 1. outlined above should be sufficient to grant this access.
To support bulk-uploads of large file sets, you may want to review the maximums currently supported by your SharePoint server farm.
No special preparation considerations apply to Document Libraries or other libraries. All Library Views with a full tool bar provide the UploadZen Upload Multiple Files menu item and hide the SharePoint Upload Multiple Documents menu items (but this can be configured on the farm and site-collection level).
If you have in use XSL / Data Form / Data View Web Parts that were created by converting from an out-of-the-box Library View (for example using SharePoint Designer), keep in mind that their menu structures are "frozen" at conversion time:
If you intend to create such Web Parts by converting from Views, uninstall or disable UploadZen temporarily prior to the conversion. You can still generate your own Upload Multiple Files links manually and add them to your pages for such Web Parts or Document Libraries if desired.
UploadZen will work fine over SSL, except when Internet Explorer raises a prompt about the SSL certificate. The prompt can be raised when there is something wrong with the certificate, such as when the site names do not match or the certificate has expired. To make UploadZen work over an SSL connection, make sure that the certificate is up-to-date, and that the certificate data matches the site data.
For UploadZen to work with default proxy authentication in a corporate setting, the defaultProxy element in the .NET Framework machine.config file on all client computers (under %WINDIR%\Microsoft.NET\Framework\<version>\CONFIG\) must be set to allow System.Net to use default security credentials. Alternatively, you can configure defaultProxy on client computers to use a specific proxy server.
After UploadZen has been installed and fully deployed, navigate to any Form Library, Picture Library, Slide Library, Translation Management Library, Web Part Gallery, Master Page Gallery, List / Site Template Gallery or any other SharePoint Document Library and drop down the Upload menu. In addition to the SharePoint Upload Document menu item, you should also see the UploadZen Upload Multiple Files menu item:
Now click the Upload Multiple Files menu item to launch the UploadZen window. The first time the UploadZen window is launched on a client computer, the user will be prompted to confirm launching the UploadZen window:
Once confirmed, that security confirmation prompt will never appear a second time when launching the UploadZen window on the same client computer again in the future.
After a few seconds, the UploadZen window appears:
The window contains two major areas:
The
Upload Files button will be enabled as soon as there are any files marked
for upload (ie. placed inside the second, right-hand side area). To mark files for
upload, simply select them and click the
Mark selected file(s) for upload button.
After you do click the
Upload Files button to initiate your upload, UploadZen will keep
you informed about the progress of your upload. After all files have been
processed, only files that have been uploaded successfully will be removed from
the Local Files Marked for Upload area.
You can mark additional files for upload even when an upload is in progress.
Attempts to launch UploadZen from a Document Library may yield a HTTP 401 error message, or UploadZen may repeatedly prompt for a user name and password that won't work even when specified correctly for a Full Access account, unless and until you take all administrative actions required to prepare a Web Application for UploadZen.
Under certain circumstances, UploadZen users may be prompted to log in to SharePoint:
Generally, UploadZen will attempt to log users in to SharePoint automatically, if and only if:
Consequently, users may be prompted by UploadZen to log in to SharePoint:
When users are prompted by UploadZen to log in to SharePoint, they can elect for UploadZen to store their encrypted password in the Windows Registry Local User hive and use it automatically in future upload sessions. To disable this option for your some or all of your users, consult the appropriate server-side configuration setting.
UploadZen lets you upload entire directory hierarchies including all (or only certain) files and sub-directories by simply marking a directory for upload.
To mark a directory for bulk upload, you can either navigate to it by clicking
the
Change Folder button, then selecting from the
Change Folder drop-down menu the appropriate Mark entire folder contents (files
and sub-folders) for upload menu item...
... or you can first select the folder(s) inside the local file navigation area and then from the context menu select either the Mark selected folders, their files and sub-folders for upload menu item or the Mark files and sub-folders of selected folders for upload menu item. (The second menu item will place the files and sub-folders directly into the currently selected Document Library target folder, the former will re-create the folder inside the currently selected Document Library target folder, then place the files and sub-folders inside that newly created folder.)
Once you have marked all folders for bulk-upload, click the
Upload Files button to initiate the bulk-upload. Each directory will be
ZIP-compressed in its entirety (in memory) for transfer:
UploadZen then uploads the in-memory ZIP archive to SharePoint where it will be extracted into the currently selected target Document Library folder.
Sometimes you want to put together a number of related files in one ZIP archive for uploading. UploadZen saves you the step of manually compressing files into a ZIP archive with an external tool; instead, you can simply select the files and tell UploadZen to compress those files into a ZIP archive which to upload in place of the individual files using the context menu:
This will put a single item (with a prefix [ZIP] and the names of the included files) into the Local Files Marked for Upload area, representing the dynamic ZIP archive that will be generated automatically once you start your upload:
As soon and as long as you have at least one ZIP archive marked for upload — whether an existing archive file you selected from your file system, or a dynamic ZIP that UploadZen will generate as described above — you will find check boxes next to these ZIP archives in the Local Files Marked for Upload area, as demonstrated in the screen shot above. Only tick the check boxes of those ZIP archives you want to extract into the currently selected target Document Library folder. This extraction will happen on the SharePoint server immediately after the ZIP archive has been fully uploaded.
Open the Product Configuration page in the UploadZen Product Center for the Site Collection that UploadZen should be disabled for, and locate the check boxes for the following two configuration settings:
Do not tick these check boxes just yet (this would disable UploadZen throughout your server-farm). Next to each check box, un-tick the Use farm setting check box, then tick the check box that now shows directly underneath.
Open the Product Configuration page in the UploadZen Product Center for the one Site Collection that UploadZen should be enabled for, and locate check boxes for the two configuration settings mentioned in the above section. Tick both check boxes, then next to each check box, un-tick the Use farm setting check box and for both settings un-tick the check box that now shows directly underneath.
While the UploadZen Upload Multiple Files menu item is automatically integrated into the Upload menu of Document Libraries (subject to client-side .NET Framework availability and server-side configuration settings), depending on your circumstances you may want to invoke the UploadZen window in other ways. You can do so simply by redirecting users to a URL conforming to the pattern http://SERVER/_layouts/roxority_UploadZen/help/app/roxUp.application?PARAMS, where:
Example: you want to create a link to the UploadZen window to upload files to the Project Templates/Our Team folder in the Our Docs Document Library located in the http://oursharepoint/sites/DocCenter/Projects/ web site. The following link would do this — without the line breaks included here only for better readability:
http://oursharepoint/_layouts/roxority_UploadZen/help/app/roxUp.application
?s=http%3A%2F%2Foursharepoint%2Fsites%2fDocCenter%2fProjects
&l=Our%20Docs
&f=Project%20Templates%2fOur%20Team
If you are generating your links through your own server-side code or client script, it is recommended that you also specify a u URL query string parameter with the current user login name. The u parameter will ensure:
The following settings are available to all users in the UploadZen window on the Settings tab. Administrators can turn off the Settings tab for some or all users via the appropriate server-side configuration setting.
Picture files are represented by an icon showing a preview of their content but this consumes additional system resources. Specify the maximum number of picture files that a folder can contain before preview icons are turned off for that folder. Use 0 to never show any preview icons.
Choose 'Yes' to automatically select a file filter for the local file browsing area suitable for the target Document Library, or 'No' to never automatically change your file filters.
Select 'Yes' to overwrite files that already exist in the SharePoint Document Library target folder under the given name, or 'No' to not replace the existing file and produce a warning message instead.
Specify a character or text used to replace each unwanted character, ie. ˜ " # % & * : < > ? / \ { | and } in uploaded file or folder names. (Clear this to simply remove the unwanted characters.)
These four sections of 13 settings each control whether to show or hide in the local file navigation area, or include or exclude in folder bulk uploads, file or folders with certain characteristics:
The following settings can be customized for each Upload Action by administrative users on the Upload Actions page in your UploadZen Studio, accessible via Site Settings / UploadZen Studio / Upload Actions:
(Text box)
This name will not be shown anywhere outside this page, but helps you stay organized.
(Descriptor for a set of SharePoint Web Sites)
Optionally select in which web sites this Upload Action will be available. By default, it will be available in all web sites and this usually does not need to be changed during your first explorations within this software. Only perform changes if you are familiar with the terminology presented in the above property editor. Should your changes not result in the expected outcome, you can always easily set this back to "all web sites, no exceptions" and then resume experimenting incrementally with your exceptions.
To define the set of Web Sites, first select either Available in all Web Sites or Available in no Web Sites, then click the except... link to describe which web sites to exclude from that selection. You can exclude:
(Descriptor for a set of SharePoint Document Libraries and Views)
Select in which Document Libraries this upload action will be offered as a menu item to end users (in the SharePoint 2007 "Upload" toolbar menu and in the SharePoint 2010 "Library Tools / Documents / New" ribbon group).
To define the set of Lists, first select either Show in all Lists or Show in no Lists, then click the except... link to describe which Lists to exclude from that selection. You can exclude:
To define the set of Views, first select either Show in all Views or Show in no Views, then click the except... link to describe which Views to exclude from that selection. You can exclude:
(Text box)
Sets the menu item / ribbon button caption for this UploadZen "Upload Multiple Files" menu item.
(Text box)
Sets the menu item description / ribbon button tool-tip for this UploadZen "Upload Multiple Files" menu item.
(Drop-down menu to pick from a set of choices)
Select the preferred uploading client technology to deploy to your end users.
ClickOnce mode launches a native Windows application (.NET 2.0+) directly from Internet Explorer (or Firefox with ClickOnce plug-in) — this is the most powerful choice, but the hardest to deploy to Vista-and-newer Windows clients.
(Check box option)
When clicking SharePoint's built-in, out-of-box 'Upload Document' menu item (single-file upload), this always opens the Upload.aspx system page (which itself may or may not include another built-in, out-of-box 'Upload Multiple Documents' link). Tick this check-box option to also offer this Upload Action on the Upload.aspx page. (Also requires activated "UploadZen Upload.aspx Replacement Page" Site Collection feature.)
(Check box option)
The uploader contains a 'Options' link or tab that lets users review or customize certain user-specific client-side UploadZen settings (such as overwriting of existing files). Untick this check box to never show the Settings feature to any users.
(Check box option)
The uploader shows a link with a version number in the bottom right corner pointing to the UploadZen product web site. Untick this check box to never show this link to your users.
(Check box option)
The uploader shows a Help link in the bottom right corner pointing to select, end user-relevant documentation pages in this UploadZen Studio. Untick this check box to never show the Help link to your users.
(Drop-down menu to pick from a set of choices)
UploadZen can just put an uploaded ZIP archive file into the current Document Library target folder as a single file, or extract all of its files and sub-folders in place.
(Check box option)
The uploader will be initialized to upload to the current Document Library folder, but users can change to another target folder right from within the uploader prior to uploading or between uploads, without having to navigate to that folder first via SharePoint. Untick this check box to never allow users to change the target folder.
(Check box option)
The uploader will be initialized to upload to the current Document Library, but users can change to another target Document Library right from within the uploader prior to uploading or between uploads, without having to navigate to that Document Library first via SharePoint. Untick this check box to never allow users to change the target Document Library.
(Check box option)
[ClickOnce mode only] The UploadZen window displays a helpful Welcome page with Quick-Start steps whenever (and as long as) there are no files or folders marked for upload. Untick this check box to never show this Mini Tutorial page to your users.
(Check box option)
[ClickOnce mode only] Uploading users may be prompted to type their SharePoint user name and password in certain circumstances (see documentation), and can optionally elect to have UploadZen log them in automatically in the future. This will store their encrypted password in their Windows Registry "Local User" hive. Untick this check box to never let your UploadZen users store their password.
The following configuration settings are available to administrative users on the Configuration page in your UploadZen Studio, which you can access via Site Settings / UploadZen Studio / Configuration Settings.
Each setting has a global value scoped to the SharePoint server farm, and this value can optionally be overridden on the Site Collection level. The following settings are available:
UploadZen has been localized for multiple languages. Changing this setting affects all UploadZen user interfaces except captions and descriptions of Features, List Templates, Column Types, Content Types or Web Part Templates (those are always loaded directly by SharePoint based on the current Web Site locale).
You can pick one of the following options on the Configuration page in the UploadZen Studio:
On the Configuration page in the UploadZen Studio, tick this check box after having read the Deployment Checklist documentation topic fully and having taken all administrative actions described that are required for UploadZen to run correctly for all users. (This will hide the reminder notice in the UploadZen window the next time a user launches UploadZen from a reloaded page.)
By default, your UploadZen action commands co-exist together with the built-in, out-of-box "Upload Multiple Documents" command. If you intend to fully replace that functionality with UploadZen, you can set whether and when to show (2007) / enable (2010) the built-in, out-of-box "Upload Multiple Documents" command (affects both both the SharePoint 2007 Library "Upload" tool-bar menu and the ribbon menu in the SharePoint 2010 "Documents / New" section of the Library Tools ribbon tab).
You can pick one of the following options on the Configuration page in the UploadZen Studio:
By default, your UploadZen action commands co-exist together with the built-in, out-of-box "Upload Multiple Files" link shown on the UploadZen Upload.aspx Replacement Page (if the corresponding Site Collection feature is activated). If you intend to fully replace the built-in functionality with UploadZen, you can set whether and when to show the built-in, out-of-box "Upload Multiple Files" link on the single-upload page.
You can pick one of the following options on the Configuration page in the UploadZen Studio:
Under rare circumstances, you may have to integrate with 3rd-party or custom Event Handlers that work better when there is a slight delay between Document Library events. Specify the number of seconds UploadZen should artificially delay each upload. If you don't specify an integer number, than the recommended default value of 0 will be used.
After you have customized this setting, you can click the Reset to Default Value link on the Configuration page in the UploadZen Studio to restore the following default value:
0
Some UploadZen end user-facing artifacts require (and load into the respective host pages) the jQuery library, version 1.4.2. Embedding jQuery more than once in a single page can cause JavaScript warnings in Internet Explorer with some few jQuery plugins (and only if any are used in your farm at all). On the Configuration page in the UploadZen Studio, tick this check box only if your master pages, web pages or third-party extensions also already include jQuery globally (not just on some individual pages) and independently of UploadZen to prevent UploadZen from loading jQuery too. If you do so, you need to make sure jQuery 1.4.2 or higher is loaded on each page hosting also hosting UploadZen user interface artifacts, or UploadZen will appear broken. This is a global default setting that can be optionally overridden locally where applicable.
THIS IS A LEGALLY BINDING AGREEMENT BETWEEN YOU (EITHER AN INDIVIDUAL OR A SINGLE ENTITY) AND ROXORITY LTD. (ROXORITY) FOR ROXORITY SOFTWARE, ASSOCIATED MEDIA AND PRINTED MATERIALS, AND MAY INCLUDE ONLINE OR ELECTRONIC DOCUMENTATION ("SOFTWARE"). BY INSTALLING, COPYING, OR OTHERWISE USING THE ROXORITY SOFTWARE PRODUCT, YOU ARE AGREEING TO BE BOUND BY THE TERMS AND CONDITIONS OF THIS AGREEMENT, INCLUDING THE SOFTWARE LICENSE AND DISCLAIMER OF SOFTWARE WARRANTY BELOW. PLEASE READ THIS DOCUMENT CAREFULLY BEFORE USING THE SOFTWARE. IF YOU DO NOT AGREE WITH THE TERMS AND CONDITIONS OF THIS AGREEMENT, YOU MUST NOT INSTALL OR USE THE SOFTWARE.
"You" or "your" as used herein means the person or company who is being licensed to use the Software, as defined below. "We," "us" and "our" as used herein means ROXORITY Ltd.
The "Software" as referred to herein means the ROXORITY Software "UploadZen", a product that extends "Microsoft SharePoint" web sites to provide additional capabilities.
We hereby grant you a perpetual, non-exclusive, non-transferable, revocable license to use the Software on your server and client computers.
The total number of SharePoint "Site Collections" or "server farms" that the Software can be "activated" on (after 45 days of free trial use) shall be limited to the number of licenses which you purchase. For example, if you purchase 4 Site Collection licenses, you may activate the Software on up to 4 SharePoint Site Collections; if you purchase 2 server farm licenses, you may active the Software on unlimited Site Collections within up to 2 server farms.
Each license is issued to one unique Site Collection or server farm and cannot be transferred to another Site Collection or server farm.
The Documentation as referred to herein shall mean the written materials that you may receive in connection with the Software. We will remain the sole and exclusive owners of all right, title and interest in and to the Software and the Documentation.
You may copy the Software for back-up and archival purposes only, provided however, that at all times herein, the original and each copy is kept in your possession and that your installation and use of the Software does not exceed that allowed in the "License Grant" section above.
You agree and acknowledge that the Software and Documentation are proprietary works that are protected by the copyright laws of various nations. You may only use the Software and Documentation for the purposes and in accordance with the terms of this Agreement. You may not, without limitation:
You acknowledge that any violation of this paragraph will cause us immediate and irreparable harm and that the damages which we will suffer may be difficult or impossible to measure. Therefore, upon any actual or impending violation of this paragraph, we shall be entitled to the issuance of a restraining order, preliminary and permanent injunction without bond, restraining or enjoining such violation by you, your successors or assignees or any entity or person acting in concert with you. Such remedy shall be additional to and not in limitation of any other remedy which may otherwise be available to us by law.
You may assign all your license to use the Software and Documentation to another person or legal entity (the "Assignee"), provided however, that prior to such assignment, the Assignee undertakes in writing to be bound by your obligations under this Agreement. Any attempt to assign or transfer the license to the Software, the Documentation or this Agreement shall be ineffective, unless the assignment complies with the terms of this paragraph. Upon assignment of your license hereunder, you agree to transfer to the Assignee all of your copies of the Software and Documentation, including all copies of updates and prior versions of the Software and Documentation and you further agree and that you will retain no copies, including, without limitation, electronic copies stored on computer discs or drives.
Except as otherwise provided herein, we warrant that the Software is free from defects in material and workmanship and will perform substantially in accordance with the Software documentation under normal use for one hundred eighty (180) days after the receipt of the Software. If you notify us within such one hundred eighty (180) day period of any claimed defect in the Software, we will at our sole option and expense, and as you sole remedy, either repair or replace the defective Software. Or, if we cannot repair or replace the Software then we will accept the return of the Software at our expense and refund the purchase price of the Software.
EXCEPT AS STATED HEREIN, THE SOFTWARE AND SERVICES OFFERED BY US ARE PROVIDED ON AN "AS IS" AND "AS AVAILABLE" BASIS WITHOUT WARRANTIES OF ANY OTHER KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF TITLE, NONINFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. WE DO NOT WARRANT THAT THE SOFTWARE WILL BE UNINTERRUPTED, TIMELY, RELIABLE, SECURE OR ERROR-FREE AND EXPRESSLY DISCLAIM ANY WARRANTIES AS TO THE MATERIALS CONTAINED THEREIN, THE SERVERS USED OR THE GOODS OR SERVICES OFFERED BY US.
IN NO EVENT WILL EITHER PARTY BE LIABLE FOR ANY DAMAGES, INCLUDING ANY LOST PROFITS, LOST SAVINGS, OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM THE USE OR THE INABILITY TO USE THE SOFTWARE (EVEN IF A PARTY OR AN AUTHORIZED DEALER OR DISTRIBUTOR HAS BEEN ADVISED OF THE POSSIBILITY OF THESE DAMAGES), OR FOR ANY CLAIM BY ANY OTHER PARTY. EXCLUDED FROM THE ABOVE LIMITATION OF LIABILITY IS LIABILITY FOR INDEMNIFICATION AS STATED HEREIN AND DAMAGES CAUSED BY THE GROSS NEGLIGENCE OR WILLFUL MISCONDUCT OF A PARTY.
This Agreement takes effect upon your acceptance of the terms of this Agreement and remains effective until terminated by either party in accordance with this Agreement. You may terminate this Agreement at any time by destroying all copies of the Software and Documentation in your possession and giving us prompt notice of same. This Agreement will automatically terminate if you fail to comply with any term or condition of this Agreement. Upon termination of this Agreement, you warrant and represent that you will immediately destroy all copies of the Software and Documentation or other materials provided to you hereunder, if any, that are still in your possession and provide us prompt written assurance of same.
Non-disclosure. You agree and acknowledge that the Software, its algorithms, protocols or interfaces, and the Documentation constitute proprietary and confidential information that belong to us (the "Confidential Information"). You also understand and agree that misuse and/or unauthorized disclosure of our Confidential Information could adversely affect our business. Accordingly, you agree that at all times you will (a) use and reproduce the Confidential Information only for the purposes of this Agreement and only to the extent necessary for such purpose; (b) restrict disclosure of the Confidential Information to your employees, consultants or independent contractors with a need to know and (c) not disclose the Confidential Information to any third party without our prior written approval. Notwithstanding the foregoing, it shall not be a breach of this Agreement for You to disclose Confidential Information if required to do so under law or in a judicial or other governmental investigation or proceeding, provided however, that You give us prior notice of the disclosure sought and You seek all reasonably available safeguards against widespread dissemination prior to such disclosure.
Remedies: You acknowledge that any violation of this paragraph may cause us immediate and irreparable harm and that the damages which we will suffer may be difficult or impossible to measure. Therefore, upon any actual or impending violation of this paragraph, we shall be entitled to the issuance of a restraining order, preliminary and permanent injunction without bond, restraining or enjoining such violation by you, your successors or assigns or any entity or person acting in concert with you. Such remedy shall be additional to and not in limitation of any other remedy which may otherwise be available to us by law.
We will at our own expense defend and hold you fully harmless against any action asserted against you (and specifically including costs and reasonable attorneys' fees associated with any such action) to the extent that it is based on a claim that use of the Software and any documentation or other materials being licensed by or provided to you under this Agreement infringes any patent, copyright, license or other proprietary right of any third party. You shall promptly notify us in writing of any such claim. If as a result of any claim of infringement against any patent, copyright, License or other proprietary right of any third party, you are enjoined from using the Software, or if we believe that the Software are likely to become the subject of a claim of infringement, We will at our option and expense will procure the right for you to continue to use the Software, or replace or modify the Software so as to make them non-infringing, or if it cannot do so within a reasonable time period, refund the Software fees paid by you pursuant to the Agreement.