Difference between revisions of "SuperContainer"

From 360Works Product Documentation Wiki
Jump to navigation Jump to search
(→‎List of hosting providers: replaced drooling dog with foxtail technology)
 
(98 intermediate revisions by 10 users not shown)
Line 1: Line 1:
==Licensing==
+
<p align="right">[http://support.fmgateway.jp/SuperContainer.html 日本語]</p>
===Limitations of demo mode===
+
{{Template:SuperContainer}}
While running in demo mode, SuperContainer Server will run for two hours each time you start it. If the demo period expires, you may simply quit and restart the SuperContainer Server to renew the two hour demo period. When you are ready to purchase a license, just replace the demo license key with your permanent license key to get rid of the two hour timeout.
 
  
===Cost / registration for plugin===
+
SuperContainer eliminates the hassle of dealing with container fields in FileMaker. It runs as a web-based java application which allows you to upload, view, and download scaled images and files from an embedded web viewer in FileMaker (introduced in FileMaker 8.5).
There is no cost for the plugin; it is included with the purchase price of SuperContainer. There are no registration functions necessary.
 
  
===Upgrading from Workgroup to Enterprise===
+
It is an effective replacement for container fields in solutions which require users to read and store files associated with records in FileMaker container fields, and offers numerous advantages over container fields.
If you would like to upgrade from a Workgroup license, first purchase an Enterprise license, and then contact us and we will credit the original charge for the Workgroup license. We are planning on upgrading our online store at some point to make this a more automated process.
 
  
==Deployment and installation==
+
SuperContainer is designed to be used from within a Web Viewer layout element in FileMaker, by pointing the Web Viewer to a URL that uniquely identifies a file resource you wish to store. This URL can contain any number of arbitrary path components.
===How to install plugins for various configurations===
 
See [[Plugin installation]]
 
  
===What is the best way to get up and running with SuperContainer===
+
In addition, SuperContainer ships with a Companion Plugin that allows you to automate access to SuperContainer resources. Consult the [http://static.360works.com/plugins/SuperContainer/plugin-documentation.html documentation in the SuperContainer Companion Plugin] directory for more details and examples.
Use SuperContainerServer.jar if you just want to put together a proof of concept, or if you're demoing SuperContainer. The standalone mode is also great to use while developing.
+
 
 +
==System Requirements==
 +
* FileMaker Clients:
 +
** Must be running FileMaker 12 or later to view the items stored in SuperContainer.
 +
** To use the optional SuperContainer companion plugin or the browser-based drag-and-drop functionality, Windows clients must have Java 1.6 or later installed. Get Java [http://www.java.com/en/download/index.jsp here]
 +
* Web Clients (Instant Web Publishing)
 +
** To use the browser-based drag-and-drop functionality, Windows clients must have Java 1.6 or later installed.
 +
* Server:
 +
** Macintosh OS X: Mac OS X 10.10 or later
 +
** Windows: Windows 7, Windows 8, Windows Server 2003, Windows Server 2008, or Windows Server 2012; Java 1.6 or later
 +
** Linux/Solaris: Java 1.6 or later
 +
 
 +
If your computer does not have Java installed, you may download it at http://java.sun.com/javase/downloads/index.jsp
 +
 
 +
==Installation: Deployment Options==
 +
 
 +
You can run SuperContainer as a standalone application, or by bundling into FileMaker Server Advanced, or in your own copy of Tomcat.
 +
 
 +
Note: There is an incompatibility with older versions of some 360Works plugins. If you are using other 360Works plugins, be sure to download new versions at http://360works.com/products/
 +
 
 +
Note:  If you are upgrading from a version older than 1.3, be aware that the URL formats have changed in SuperContainer.
 +
 
 +
===Option 1: Using SuperContainer as a standalone server application===
 +
[[File:SuperContainerStandalonePic.jpg|center|Example of SuperContainer as a standalone server application]]
 +
 
 +
This approach is excellent for simple deployment, as well as for testing and development. There's no installation required, you just start the server and immediately begin using it. You will need to start the SuperContainerServer every time the machine it is running on is rebooted. This deployment option does require Java to be installed.
 +
 
 +
'''Macintosh or Windows''': Double-click the SuperContainerServer.jar file to start the standalone application. Once the application is running, you should be able to view the opening page at http://localhost:8020/SuperContainer . The server application allows you to specify where uploaded files are stored, and customize several other settings. To restrict unwanted access to your SuperContainer files, enter a username and password in the options dialog.
 +
 
 +
Deploying SuperContainer in standalone mode on Mac OS X enables CoreImage rendering support. See the Supported Image Formats and CoreImage rendering section for more information.
 +
 
 +
====Notes====
 +
*the standalone application must be in the same directory as the SuperContainer application folder.
 +
 
 +
*Starting with SuperContainer 3.0, you will need Java 17 to run the stand alone .jar file. Versions previous to 3.0 require Java 8.
 +
 
 +
====Changes for OS X Catalina or later====
 +
Starting in OS X Catalina, the Gatekeeper utility is much more restrictive on third party applications/software downloaded from the internet. If you intend to use the Standalone option, downloading SuperContainer from our website will cause Gatekeeper to set the quarantine flag which will prevent the .jar file from being launched. To circumvent this, we recommend using cURL from Terminal to download the application. Open Terminal and run the following the command:
 +
 
 +
<code>curl -L https://secure.360works.com/360Store/WebObjects/360Store.woa/wa/ProductDownload/SuperContainer -o ~/Downloads/SuperContainer.zip</code>
 +
 
 +
This will create a file called SuperContainer.zip in your Downloads folder.
 +
 
 +
[[File:Curlcommand.png]]
 +
 
 +
3. Unzip the .zip file and then double click the SuperContainerServer.jar file. You may still see a warning about being downloaded from the internet. Choose open/open anyway.
 +
 
 +
4. The Gatekeeper utility sometimes also flags the library we use to make thumbnails of certain file types like pdfs.  It is a good idea to open this file as well to let gatekeeper know it is approved.  There is a SuperContainer directory in the download.  Go to SuperContainer -> WEB-INF -> Classes.  Right click libImageResize.jnilib and say open it with a text editor.  You can then immediately close the file and it will be approved by gatekeeper.
 +
 
 +
If doing so does not resolve the issue, please send an email to support@360works.com
 +
 
 +
===Option 2: Installing SuperContainer with FileMaker Server===
 +
 
 +
[[File:SuperContainerFMSPic.jpg|center|Example of SuperContainer as a standalone server application]]
 +
 
 +
This approach is recommended if you want to run SuperContainer on a dedicated server which is also running FileMaker Server 12+
 +
 
 +
Copy the entire SuperContainer download folder to your server, and double-click the "Mac Installer.app" (Mac) or "WindowsInstaller.exe" (Windows) file in the SuperContainer folder. For Linux installation, please see the instructions [[Linux_Web_Application_Installation | here]]
 +
 
 +
 
 +
The SuperContainer Installer takes care of the following for you:
 +
 
 +
* Adds SuperContainer web application to the hosting folder of Tomcat built into WPE.
 +
* Backs up and modifies webserver configuration to make SuperContainer available on port 80.
 +
* Backs up and reapplies SuperContainer settings from previous versions if such exist (see below for notes on this).
 +
* Once installation is complete, restart the machine and then point your browser to http://serverAddress/SuperContainer.
 +
 
 +
==== Notes ====
 +
* If installing on OS X, your system may report the installer to be damaged. This usually indicates that you need to set Gatekeeper to "Allow apps downloaded from: Anywhere". Please see [http://support.apple.com/kb/ht5290 this support article]. If that is enabled and you still are seeing this, please contact 360Works email support. New versions of Mac OS no longer allow for you to set this. If you see that the OS has blocked the app from running, go into System Preferences->Security and click Open Anyway.
 +
 
 +
* Upgrading SuperContainer on FileMaker Server using the installer will overwrite the web.xml file used for custom storage of SuperContainer files (see [http://docs.360works.com/index.php/SuperContainer#web.xml_Locations here] for a list of locations of the web.xml file). If you have modified this file with a custom path then please make a copy prior to upgrading. After the upgrade is finished you should place the copied web.xml file back to it's original directory (replacing any other versions in that directory).
 +
 
 +
*If you are running the Apache web server built into OS X Server (the "Web" module), you must restart it to reload the configuration files used by SuperContainer. Apache should be restarted after both an automatic or manual installation.
 +
 
 +
*If the install is hanging you may try following these instructions: [[SuperContainer_Troubleshooting_and_Known_Issues#Installer_Hangs_.2F_Can.27t_Install_SuperContainer]]
 +
 
 +
*If you have trouble running the installation file, you can perform a manual installation as an alternative.
 +
 
 +
=====Manual Installation with FileMaker Server=====
 +
'''Please be sure to review the Notes section just above'''
  
===Manually Installing SuperContainer 2.0 and higher===
 
SuperContainer 2.0 comes with a bundled installer.  If you'd prefer to install manually, you can do the following:
 
 
# Determine your '''INSTALLATION_PATH'''
 
# Determine your '''INSTALLATION_PATH'''
 +
#* FMS14+ on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
 +
#* FMS13 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
 
#* FMS12 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
 
#* FMS12 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
 
#* FMS11 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
 
#* FMS11 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
Line 25: Line 99:
 
#* FMS8 on OS X: /Library/FileMaker Server/Web Publishing/jakarta-tomcat/webapps/
 
#* FMS8 on OS X: /Library/FileMaker Server/Web Publishing/jakarta-tomcat/webapps/
 
#* FMS7 on OS X: /Library/FileMaker Server 7/Web Publishing/jakarta-tomcat/webapps/
 
#* FMS7 on OS X: /Library/FileMaker Server 7/Web Publishing/jakarta-tomcat/webapps/
 +
#* FMS13+ on Win: '''Please see the next section for specific instructions'''
 
#* FMS12 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\
 
#* FMS12 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\
 
#* FMS11 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
 
#* FMS11 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
Line 34: Line 109:
 
# Modify the tomcat configuration files to serve SuperContainer content on port 80
 
# Modify the tomcat configuration files to serve SuperContainer content on port 80
 
## Determine your TOMCAT_CONFIG_FILE path
 
## Determine your TOMCAT_CONFIG_FILE path
##* Mac OS X (for FMS12): locate mod_proxy.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
+
##* Mac OS X (for FMS12,13, & 14): locate mod_proxy.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
 
##* Mac OS X (for FMS11 and below): locate mod_jk.conf or mod_jk_paths.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
 
##* Mac OS X (for FMS11 and below): locate mod_jk.conf or mod_jk_paths.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
 
##* Windows:  locate uriworkermap.properties file in C:\Program Files\FileMaker\FileMaker Server\Admin\admin-helper\WEB-INF\conf\
 
##* Windows:  locate uriworkermap.properties file in C:\Program Files\FileMaker\FileMaker Server\Admin\admin-helper\WEB-INF\conf\
 
## Add the appropriate lines to mount the SuperContainer webapp
 
## Add the appropriate lines to mount the SuperContainer webapp
  
Mac OS X (for FMS12):  
+
Mac OS X (for FMS12-14):  
 
<pre>
 
<pre>
ProxyPass /SuperContainer ajp://127.0.0.1:16021/SuperContainer
+
ProxyPass /SuperContainer http://127.0.0.1:16020/SuperContainer
ProxyPassReverse /SuperContainer ajp://127.0.0.1:16021/SuperContainer
+
ProxyPassReverse /SuperContainer http://127.0.0.1:16020/SuperContainer
 
</pre>
 
</pre>
  
Mac OS X (for FMS11 and below):  
+
Mac OS X (for FMS11):  
 
<pre>
 
<pre>
 
JkFmMount /SuperContainer/* cwpe
 
JkFmMount /SuperContainer/* cwpe
Line 57: Line 132:
 
</pre>
 
</pre>
  
Windows (for FMS11 and below):  
+
Windows (for FMS11):  
 
<pre>
 
<pre>
 
/SuperContainer/*=cwpe
 
/SuperContainer/*=cwpe
Line 63: Line 138:
 
</pre>
 
</pre>
  
After saving your changes, restart your web service and all associated services  (tomcat, IIS, FMS). Restarting your computer will work as well.  SuperContainer should now be up and running!
+
After saving your changes, restart your web service and all associated services  (Tomcat, IIS, FMS).
  
===Manual Tomcat deployment/update(Windows)===
+
=====Manual Installation to FileMaker Server 13+ on Windows=====
 +
 
 +
# Determine your '''INSTALLATION_PATH'''
 +
#C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\
 +
# Copy the SuperContainer folder to your INSTALLATION_PATH.  Only copy the directory called 'SuperContainer', not the entire SuperContainer_2.0 directory.
 +
# FileMaker Server 13+ use the URL Rewrite module of IIS to redirect traffic from the native HTTP Tomcat port 16020 to the standard web traffic port 80
 +
#* Launch the IIS Manager, expand the Sites folder, then click on the FMWebSite site. You will see a collection of modules in the center pane of IIS Manager.
 +
#* Double click the module that reads <code>URL Rewrite.</code>
 +
#* In the right hand pane, click <code>Add Rule(s)</code> at the very top of the list of actions.
 +
#* From here, choose <code>Blank rule</code> and press OK
 +
#* Set up the rule to match the pattern for the requested URL using regular expressions.
 +
#* Set the pattern as <code>^SuperContainer(.*)</code>
 +
#* Scroll down to the action section and be sure the action type is set to <code>Rewrite</code>
 +
#* Set the Rewrite URL as <code>http://localhost:16020/SuperContainer{R:1}</code>
 +
#* Be sure <code>Append query string</code> and <code>Stop processing of subsequent rules</code> are both checked, then apply the settings and test the the SuperContainer URL in your browser (http://localhost/SuperContainer)
 +
 
 +
===Option 3: Installing SuperContainer with Tomcat===
 +
 
 +
[[File:SuperContainerTomcatPic.jpg|center|Example of SuperContainer as a standalone server application]]
 +
 
 +
This approach is recommended for advanced users if you are running Linux, Solaris, or any other computer not running FileMaker Server Advanced.
 +
 
 +
You must have a copy of Tomcat (downloadable from http://tomcat.apache.org) installed and running.
 
# Download latest SuperContainer form www.360works.com/supercontainer/
 
# Download latest SuperContainer form www.360works.com/supercontainer/
 
# Extract the downloaded zip
 
# Extract the downloaded zip
 
# Stop Tomcat, either using the 'badge' icon in the bottom right corner on Windows, or by stoping service.
 
# Stop Tomcat, either using the 'badge' icon in the bottom right corner on Windows, or by stoping service.
# Copy the SuperContainer folder
+
# If desired, customize the settings found in the SuperContainer/WEB-INF/web.xml configuration file. You can customize the path where files are stored, as well as set a username and password to protect your SuperContainer files.
# Paste the folder into tomcat's webapps directory, usually it's located in c:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps. If the SuperContainer folder already exists there, then first backup the existing folder, then paste the folder from clipboard, then replace the SuperContainer\WEB-INF\web.xml file with one form the backed up folder, web.xml file contains customized settings.
+
# Copy the SuperContainer folder into the Tomcat webapps folder. Usually it's located: C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps
# Start Tomcat, test the deployment.
+
# Go to http://serverAddress:8080/SuperContainer to make sure that SuperContainer is running correctly. Note that the default port with Tomcat is 8080, instead of 8020 for standalone mode.
  
===Using port 80 with standalone SuperContainer deployment===
+
===Migrating SuperContainer to another FMS machine===
In order to use the standalone SuperContainer applet, which by default runs on port 8020, on port 80 you will need to configure some settings within your Apache Tomcat server.
+
If you need to move SuperContainer to a new machine because you are moving FileMaker Server, the migration process is relatively straight forward. First, copy over the Files(or whatever you have named it) folder, that contains the files SuperContainer is serving, to the new machine. You will want to place the files in the same location on the new machine as they were on the old. If you are using a non-default location, copy over the [http://docs.360works.com/index.php/SuperContainer#web.xml_Locations web.xml] file and place it on the desktop. If you are accessing SuperContainer on a non default port, you will also want to copy over the TOMCAT_CONFIG_FILE. The name of this file varies depending on OS and version of FileMaker Server. See [http://docs.360works.com/index.php/SuperContainer#Manual_Installation_with_FileMaker_Server this] section to determine the name and location of the file. Once you have done that, run the SuperContainer installer to install SuperContainer. Once it has installed, replace the new web.xml file and TOMCAT_CONFIG_FILE with the ones you copied over from the old machine and then restart the machine. Once it has restarted, SuperContainer should be up an running on the new machine.  This process varies slightly with the standalone jar option. Instead of a web.xml file, you will change the location of the Files folder in the options menu of the Standalone GUI.
  
First, you will want to navigate on your machine to the Apache httpd.conf file:
+
==Using SuperContainer in your FileMaker solution==
  
'''Mac OS X:'''  
+
Let's walk through setting up SuperContainer for a sample FileMaker solution. We will assume for these examples that your server is called 'yourServer.com', and that you have a table occurrence called 'Asset' with a field called 'ID'. This ID field is how you want to reference your files on the server. Substitute the actual values for your situation.
<pre>
 
/private/etc/apache2
 
</pre>
 
  
<b>NOTE</b>: This may be hidden on Mac OS X and can be reached by using "Go" -> "Go To Folder..." in the Finder.
+
===Registration===
  
'''Windows:'''  
+
By default, SuperContainer will run in demo mode, which must be restarted every 2 hours. It will also display a small "DEMO" flag on all pages. You can activate the software at '''<nowiki>http://hostname/SuperContainer/Registration</nowiki>'''. If you are using the standalone version of SuperContainer the registration URL is '''<nowiki>http://hostname:specified port/SuperContainer/Registration</nowiki>'''. Standalone uses port 8020 by default so if you have not changed this in the standalone UI then '''specified port''' should be 8020. This will remove the "DEMO" flag and will no longer time out after 2 hours.
<pre>
 
C:\Program Files (x86)\Apache Software Foundation\Apache2.2\conf
 
</pre>
 
  
Now, add the following two lines to the httpd.conf file after the appropriate "DocumentRoot" as shown below:
+
=== SuperContainer URLs ===
 
<pre>
 
DocumentRoot "/Library/WebServer/Documents"
 
  
ProxyPass "/SuperContainer" "http://localhost:8020/SuperContainer"
+
You will need to start by creating a web viewer in your FileMaker layout, and assign a SuperContainer URL to the web viewer. The first part of the URL is always:
ProxyPassReverse "/SuperContainer" "http://localhost:8020/SuperContainer"
 
</pre>
 
  
The ProxyPass and ProxyPassReverse are two Tomcat directives that allows remote servers (SuperContainer in this case) to be mapped into the space of the local server (Tomcat). You can find more information on these directives by visiting: http://httpd.apache.org/docs/1.3/mod/mod_proxy.html#proxypass
+
<pre>http://yourServer.com:portNumber/SuperContainer/Files</pre>
  
Then, you will need to restart your Apache server:
+
*Note: when installed with FileMaker Server you do not need to specify the port number
  
'''Mac OS X:'''
 
  
Open Terminal and type:  
+
After that, you specify where on the server you want the uploaded file to be stored. You can include slashes in the URL to store the files subfolders, like this:
<pre>
 
sudo apachectl restart
 
</pre>
 
  
'''Windows:'''
+
<pre>/path/to/file</pre>
  
Easiest way to control Tomcat on Windows is to use the Tomcat Monitor tool. This is available by selecting Start -> All Programs -> Apache HTTP/Tomcat Server -> Monitor Apache
+
You can also specify optional parameters in the URL which affect the behavior of SuperContainer. See the [[#Customizing SuperContainer Appearance]] section for more about how to customize the SuperContainer display.
  
Finally, launch the standalone SuperContainerServer.jar file as normal and navigate to:
+
Typically, you would include the name of the table and the unique ID of the record into the URL, so if SuperContainer is running on the default port of 8020 for our example 'Asset' table, your URL for record number 4321 would look like this:
  
http://localhost/SuperContainer  
+
<pre>http://yourServer.com:8020/SuperContainer/Files/Asset/4321</pre>
  
to ensure SuperContainer is running on port 80.
+
The FileMaker calculation to do this would look like this:
  
===SuperContainer for hosting providers===
+
<pre>"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID</pre>
You can run SuperContainer version 1.72 or later for your clients in Tomcat by following these steps:
 
* Each client will need to purchase a separate license of SuperContainer, or you may purchase a license for them.
 
* Modify SuperContainer/WEB-INF/web.xml file and put in valid values for the 'activationCode' and 'registeredTo' settings for your client.
 
* Change the name of the SuperContainer folder to that client's name and put it into the webapps folder. The URL will become whatever you name the folder, so if you change the folder name from 'SuperContainer' to 'ClientX', the URL to access SuperContainer will be http://yourServer:8080/ClientX/Files.
 
  
===List of hosting providers===
+
Note that the SuperContainer URL can contain as many elements as you like. If a given asset can have 3 images uploaded to it, you could either create a new table for holding the images, or use the following URL schema:
The following companies have told us that they are set up or willing to configure their servers to host SuperContainer. They are listed in order of when they first contacted us:
 
* Dan Weiss, Adatasol ( http://www.adatasol.com/ )
 
* John May, Point in Space ( http://www.pointinspace.com/ )
 
* Scott Karch, Nimbus ( http://www.nimbushosting.net/ )
 
* Foxtail Technology ( https://www.foxtailtech.com/Index.php?page=sc )
 
* Joseph Climaldi, ODI Technologies ( http://www.oditech.com/ )
 
* Joshua Paul, Neo Code Software ( http://store.neocodesoftware.com/ )
 
* Lee Lukehart, SavvyData ( http://savvydata.com/ )
 
  
===Enabling OS X Core Image resizing===
+
<pre>"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/1"
In it's normal configuration, SuperContainer can generate thumbnail images of JPEGs, PNGs, GIF files, and most TIFF files. It will not generate thumbnails for PDF files, CMYK JPEG or TIFF files, RAW files, or Photoshop files.
 
  
There's a mac-specific feature that lets SuperContainer use native OS X image processing libraries for its image handling. This means it can generate thumbnails of PDFs, as well as just about any other image type you throw at it.  This only works if you're running SuperContainer server in standalone mode on an OS X box. It will not work on a Windows server, or when running in Tomcat. It doesn't matter what the client machines are using, however.
+
"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/2"
  
Just create a new file at the following location:
+
"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/3"</pre>
  
<pre>
+
=== Uploading Files ===
/Library/Preferences/com.prosc.supercontainer.properties
 
</pre>
 
  
The contents of the file should be the following line:
+
There are several ways to upload files to SuperContainer. The simplest is to drag a file or directory onto the SuperContainer window, which immediately uploads the file, displaying a progress bar during the upload process.
  
<pre>
+
If you are looking at a SuperContainer URL which has no file uploaded to it, by default an "Upload file" button is displayed. You can use this button or right-click/ctrl-click to display a file chooser dialog. Select a file or directory to upload and click "OK", which then uploads the file, displaying a progress bar during the upload process.
coreImageEnabled true
 
</pre>
 
  
And then restart SuperContainer.  Thumbnails will now be generated using OS X image libs, and PDF will appear as thumbnails instead of icons.
+
=== Accessing Files ===
  
===Plugin auto-update info===
+
Once a file has been uploaded to SuperContainer, it is displayed at the current width of the browser window (for images) or displayed as a file icon (for non-images).
See the section on [[Plugin autoupdate]]
 
===Compatability matrix===
 
'''Accessing SuperContainer from FileMaker Pro'''
 
{| class="wikitable"
 
|-
 
| &nbsp; || Version 7 || Version 8 || Version 8.0v4 || Version 9 || Version 10 || Version 11
 
|-
 
| FileMaker Pro: Access with a Web Viewer || X || X || Y || Y || Y || Y
 
|-
 
| FileMaker Pro: Using optional plugin || Y || Y || Y || Y || Y || Y
 
|}
 
  
{| class="wikitable"
+
Double-click on a file to download the file to the local computer and open it in the default application for that file type. Alternately, you can right-click and choose "Open in default application".
|-
 
| &nbsp; || Version 7 || Version 8 || Version 8.0v4 || Version 9 || Version 10 || Version 11
 
|-
 
| FileMaker Pro Server, Custom Web Publishing || X || X || X || Y || Y || Y
 
|-
 
| FileMaker Pro Server Advanced, Instant Web Publishing || X || X || Y* || Y || Y || Y
 
|-
 
| FileMaker Pro Server Advanced, Custom Web Publishing || Y || Y || Y* || Y || Y || Y
 
|}
 
  
Note: * = FileMaker Server / Server Advanced 8.0v4 on OS X will not work with the optional SuperContainer Companion Plugin. It will work on Windows, or on 8.0v1 - 8.0v3
+
To save a file to a custom location, right-click and choose '''Save file'''.... This opens a file chooser dialog where you can specify where to save the file.
  
SuperContainer is fully compatible and tested to work with FileMaker 10
+
To view a resource in your browser, right-click and choose '''View in browser'''. This opens a RawData URL in your browser which points to the raw file contents.
  
===Configuring where SuperContainer saves files===
+
=== Deleting Resources ===
By default, SuperContainer saves files in /Users/Shared/SuperContainer on Mac OS X and C:\Documents and Settings\SuperContainer on Windows. You can set this to any path you want, such as an external drive or network volume. If you are running in standalone mode (ie. double-clicking on SuperContainerServer.jar), that can be configured by clicking 'options'. If you are running in Tomcat or with FileMaker Server, you can configure that by editing the SuperContainer/WEB-INF/web.xml file. Change the 'macintoshFilesPath' or 'windowsFilesPath' setting to where you want the files to be stored. Be sure to configure file permissions appropriately for the folder you're storing to, especially for network volumes.
 
  
===Locking the SuperContainer Registration===
+
To delete a resource, use the "delete" button or context menu. Dragging a new file into SuperContainer will also delete any existing file.
Entering information in the .../SuperContainer/Registration page will set your registration, but it can be changed from that page as well.  If you want to lock in the SuperContainer registration so that it cannot be changed from a browser you should enter your license key in the activationCode and registeredTo values in the web.xml file (the same place you can set a username and password).  Enter your values, save the file, and restart the SuperContainer Server and SuperContainer will read the value from the web.xml file, rather than from what is entered into the registration page.
 
  
=== Uninstalling SuperContainer ===
+
===Using SuperContainer with FileMaker Go===
'''When deployed in FileMaker Server's Web Publishing Engine''': If you have installed SuperContainer to run in FMS WPE, you can re-run the MacInstaller.app or WindowsInstaller.exe file and click "Remove" to uninstall from the Web Publishing Engine. <br />
 
'''When deployed on Tomcat''': If you have installed SuperContainer to run in a standalone version of Tomcat, you can simply remove the SuperContainer folder from the webapps folder of in your Tomcat directory. <br />
 
'''When deployed in standalone mode''': If you have deployed SuperContainer to run in standalone-mode (i.e. SuperContainerServer.jar file), you can simply delete the .jar file. <br />
 
  
<br />
+
You do not need to change anything in SuperContainer to use it with FileMaker Go. SuperContainer will detect that it is being viewed in FileMaker Go and automatically switch to 'noapplet' mode, which means that it will use HTML instead of a Java applet (Java is not supported on iOS). There are a few behavior differences to be aware of when using SuperContainer with FileMaker Go:
<br />
 
''NOTE'':
 
SuperContainer saves its preferences in a file on your computer (when running in standalone mode by double-clicking the .jar file). On a mac, this is located at <code>/Library/Preferences/com.prosc.supercontainer.plist</code>.  Remove this file to remove any stored preferences.
 
  
=== Removing Registry Entries ===
+
* If you click on an item stored in SuperContainer, it will render at full size within the web viewer. In the case of Word or PDF documents, you will see the contents of the file inside the web viewer, and for QuickTime movies, you will see the movie play within the web viewer (if it is encoded in a format supported by iOS). This is different than the regular SuperContainer behavior, which opens a separate browser window to display the full resource.
Windows: Search the registry for all keys which include "supercontainer" and remove them.
 
Mac: Look for a file /Library/Preferences/com.prosc.supercontainer and remove it.
 
  
==Known Issues==
+
If you would like to view the SuperContainer resource in a full-screen browser window in FileMaker Go, you will need to add a button or script that calls the 'Open URL' script step. The URL should be the regular SuperContainer URL with the word 'RawData' in place of 'Files' (see 'RawData URLs' below for more information). Thus, the script step would look like this:
  
===Memory Leaks in SuperContainer?===
+
<pre>Open URL[ Substitute( SuperContainer URL; "/SuperContainer/Files/"; "/SuperContainer/RawData/" ) ]</pre>
There is a documented and filed bug with Mac OS X's Core Images X Library, which does leak memory. SuperContainer makes use of Mac OS X's Core Image library by default, but also can use Mac's QuickLook library for image rendering.
 
  
This is not SuperContainer specific and is related to the Core Image library.
+
There is a 9-minute movie available on Youtube demonstrating SuperContainer features on FileMaker Go: http://www.youtube.com/watch?v=ZPw3uibJC_c
  
The best approach is to enable QuickLook for SuperContainer, the instructions for this can be found on our SuperContainer Product Support wiki page. See Enabling QuickLook.
+
===Specifying image dimensions===
  
===Container fields in Windows that use OLE===
+
SuperContainer automatically detects the size of the web viewer or web page that it is displayed on, and generates a thumbnail to exactly match the display size. You do not need to do anything for this to work. However, you may optionally want to display the image at a different size than the web viewer. In that case, you can include a width and/or height parameter in your URL, like this:
SC Companion plugin behaves incorrectly, b/c FileMaker stores only the preview of the file internally and only the preview ends up uploaded to SC Server when using the Companion plugin SCSetContainer function.
 
  
Workaround: use ExportFieldContents script step and export the file then use the filepath to the file when calling SCSetContainer function.
+
<pre>http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=500
  
===FileMaker crashes when closing a window with SC webviewer===
+
http://yourServer.com:8020/SuperContainer/Files/Asset/4321?width=400
This is confirmed bug in FileMaker: http://forums.filemaker.com/posts/af993cfbc4
 
  
Behavior: when closing a FileMaker window containing a layout that has multiple webviewers displaying a Java applet, FileMaker crashes.  A crash log is produced on the Desktop.
+
http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=64&width=64</pre>
  
This issue is not specific to SuperContainer, this is a problem with all Java applets.
+
===Embedding authentication username and password in the URL===
  
Platforms exhibiting problem:
+
If you have password-protected your SuperContainer installation and don't want users to be prompted for a username and password, you can embed this information directly into your URL. For a username of "bob" and password "secret", you can do the following ('''Note''': This method may cause a Phishing warning to appear in your browser due to the deprecation of this method of authentication. The URL parameter method is preferred if possible):
* XP
 
* Vista
 
  
Java versions exhibiting problem:
+
<pre>http://bob:secret@yourServer.com:8020/SuperContainer/Files/etc...</pre>
* Java 1.6 (we've tested several different updates, and there is no fix for this in Java 1.6 yet)
 
  
There are five possible solutions
+
'''Note''': this is not a foolproof means of preventing users from finding out the username and password! The password will be shown briefly when loading the page, and again when clicking on a link to download the image.
# Downgrade to Java 1.5 - http://java.sun.com/products/archive/j2se/5.0_19/index.html
 
# Use Custom Menus in FileMaker Pro Advanced to close/navigate to different layouts. See [[Creating Custom Menus in FileMaker Pro Advanced]].
 
# Use FM script to either switch to a different layout then close, or minimize the window and then close
 
# Use the style=noapplet parameter in the SC URL
 
# Un-check "Enable the next generation Java Plug-in" option in the Java Control Panel -> advanced -> Java Plug-in
 
  
===Expired certificate in SuperContainer Java applet===
 
New certificate was included in version 2.56
 
  
===SuperContainer applet not responding to mouse events(on Mac)===
 
This was a bug introduced by Apple Java update for Mac.
 
  
Workaround was included in release 2.52
+
Alternately, you can include the username and password as regular URL parameters (version 2.54 and later). To do this, include a username and password parameter in your SuperContainer URL, for example:
  
===Weird flickering of SuperContainer applet===
+
<pre>http://yourServer.com:8020/SuperContainer/Files/testing?username=bob&password=secret</pre>
was introduced in version 2.52, in leu of working around bug in Apple's update (see above)
 
  
Fix added to version 2.58
+
This is useful for Internet Explorer users whose security settings prevent the browser from allowing authenticationi from being embedded in the URL.
  
===Black or Grey webviewer, when using SC with other 360Works plugins===
+
===Specifying a custom resolution===
This may be caused by an old 360Works plugin, all plugins that were release by 360Works prior to December, 2008 can cause this issue.
 
  
Fixed in current version(s) of 360Works plugin(s)
+
If you need to print images from SuperContainer, you can specify an optional resolution parameter, telling SuperContainer to display images as hi-res. The default resolution is 72. If you specify a different resolution, SuperContainer will return a large image, and will alter the HTML img tag to have the correct width and height.
  
===Black or Grey webviewer, without 360Works plugins installed===
+
'''Note''': you should also specify style=noapplet when printing, and specify a maximum width/height.
This can be caused by an outdate Java Runtime 1.1.4 released by Microsoft.
 
  
I believe that this JRE is shipped with some Microsoft product and is installed silently.
+
Here is an example URL with a resolution parameter set:
  
Please contact 360Works for troubleshooting help/directions and fixes.
+
<pre>http://yourServer.com:8020/SuperContainer/Files/xyz?width=64&height=64&resolution=300&style=noapplet</pre>
  
===SuperContainer and proxies===
+
If the original image is large enough, this results in an on-screen image no larger than 64x64 pixels, with a resolution of 300 DPI. If the image is not large enough, the DPI will be scaled down to no less than 72 DPI.
Proxies can cause issues for the SuperContainer applet.
 
  
Please contact 360Works with specific problems related to proxies.
+
'''Note''': for performance reasons, you should only specify a resolution parameter for print-specific layouts. The server needs to do additional work analyzing the image if there is a resolution parameter, and the resulting image is also larger than necessary for on-screen viewing.
  
===Plugin Conflicts===
+
=== Printing Images from SuperContainer ===
We have found a few plugins which cause issues with Java in FileMaker.  As SuperContainer is Java-based, a damaged java being launched within FileMaker will prevent SuperContainer's java applet from loading properly.  SuperContainer can still be used in noapplet mode, but the older, damaged java instances launched by these plugins will prevent the applet from working properly.
 
  
Plugins with known issues:
+
SuperContainer is access from a web viewer, and because of this printing before your image has completely downloaded or the applet has been loaded is a possibility. To make sure that you do not print before you have completely downloaded your image from SuperContainer it is recommended that you do one of the following:
• All AcmeTech products, including MondoMail, NetTools, CCauthorize, JavaCompanion, and JavaScript Interpreter
 
  
• PDMSQL by Professional Data Management
+
A. Download the image to an unstored calc using the SCGetContainer function of the SuperContainer Companion plugin - This solution will automatically download the image at the full resolution for printing, however you will need to have the Companion Plugin installed.
  
==Troubleshooting==
+
B. Use "noapplet" mode with a specified height, width, and resolution parameter as well - This option still risks printing before your download has finished, but reduces some of the risk of your print not working properly due to the java applet. You may want to add a one or two second pause to make sure that your images completely download.
  
===I keep getting an "ERROR" when I use the plugin functions===
+
=== Supported Image Formats and CoreImage rendering ===
When an "ERROR" occurs, definitely make use of the provided plug-in function, [http://360works.com/plugins/SuperContainer/plugin-documentation.html#SCLastError SCLastError], which returns detailed information on what the error is referring to -- and often provides great clues on how to resolve the issue.
 
  
This function is ''invaluable'' and can save you from hours (or even days) of headache when trying to develop a FileMaker solution that makes use of plugin functions. By reading through our section on [http://360works.com/plugins/SuperContainer/plugin-documentation.html#error_reporting Error Reporting] with SuperContainer Companion plug-in, you will find out how to check for errors on each plug-in function that is used.
+
SuperContainer by default currently supports thumbnail generation for the following image formats: bmp, jpg, gif, png, jpeg2000, raw, pnm, and tiff (on some platforms). Some images may use a compression format that SuperContainer cannot resize. These will always be displayed as full-size images.
  
With that said, more often than not, the "ERROR" usually will refer to the base URL not being set yet. See: [http://360works.com/plugins/SuperContainer/plugin-documentation.html#SCSetBaseURL SCSetBaseURL()].
+
SuperContainer 2.0 and higher running in standalone mode on OS X uses OS X's CoreImage rendering to generate thumbnails. In addition to being significantly faster, CoreImage can render almost any image format you throw at it, including PDF, EPS, SVG, TIFF, Photoshop, and many more.
  
===I downloaded the Demo... now what?!===
+
Note that CoreImage only needs to be running on the server, any client connecting to SuperContainer will see the rendered thumbnails. This means Windows FileMaker clients can see PDF content previews in their web viewers.
We have several resources available that go into some detail on how to to get started with SuperContainer -- most notably our documentation and the SuperContainerExample.fp7 file that comes with the downloaded content. The documentation outlines several steps on how to get started with SuperContainer, deploying an instance of SuperContainer on your machine, uploading files, and general use of the plugin .  
 
  
In addition to our standard documentation for the plug-in, we also have a Product Support wiki page for SuperContainer that delves a bit deeper into the product, offering solutions and answers to common questions, usage tips, and troubleshooting help. I recommend that as a Go-To source for information and as a first line of defense when questions arise.
+
==Using SuperContainer outside FileMaker==
  
The SuperContainer forum on FMForums is also an ideal source of information and contains several threads of valuable information pertaining to the product.
+
SuperContainer is a web-based application, so you can access it from anywhere you have a network connection. If you are using custom web publishing or writing tools in other languages, you can still have access to your SuperContainer data.
  
If by chance, you would prefer to kick back and relax and let the makers of SuperContainer help to integrate its storage functionality into your solution, that's a perfectly viable option as well! We offer custom development work and can help integrate SC for you at our hourly rate of $165/hr. If this is something you think you would be interested in, please do not hesitate to contact us.
+
===Custom Web Publishing===
  
We are also available for any general support questions you may have about SuperContainer, or any of our plugins, so feel free to send an e-mail or give us a call if things start to get sticky.
+
Version 2 of SuperContainer includes a PHP API for interacting with SuperContainer from your custom web publishing applications. Simply include() the PHP/supercontainer.php file in your PHP script, then use the included functions to upload, download, delete, and query the server.
  
SuperContainer Documentation: http://360works.com/plugins/SuperContainer/documentation.html<br />
+
See the SuperContainer PHP Documentation.html in the Support files/PHP directory of your SuperContainer download for more info. Please note that this is included as a convenience and is not a supported configuration.
Companion Plugin Documentation: http://360works.com/plugins/SuperContainer/plugin-documentation.html<br />
 
SC Product Support Page: http://wo.360works.com/cgi-bin/support/productsupport.cgi/SuperContainer<br />
 
SC FMForums Page: http://fmforums.com/forum/forum/122-supercontainer-by-360-works/
 
  
===How do I know how SuperContainer is deployed?===
+
===Java Integration===
To check if you are running multiple instances of SuperContainer, you can simply open/launch your favorite browser -- whether Safari or Internet Explorer and type the following into the address bar:
 
  
<pre> http://myserver.com/SuperContainer/ (if connecting remotely)
+
There is a developer's Java API available separately. If you're writing a server-side java application or a desktop swing application, this provides an easy way to integrate with SuperContainer. Contact [http://360works.com/contact 360Works] for more info on this.
http://localhost/SuperContainer (if running from the server machine)
 
</pre>
 
  
If you type the above in and get a page that displays the version of SuperContainer, this means that you have deployed SuperContainer via the WPE of FMS. If you get a 404 error or File Not Found exception, this means you are not running SC via the WPE. Next, try putting the following into your web browser's address bar:
+
===RawData URLs===
  
<pre>http://myserver.com:8020/SuperContainer (if connecting remotely)
+
If you want to link directly to the contents of a SuperContainer file, you can use a RawData URL. Simple replace the word "Files" with RawData" in your SuperContainer URL, like this:
http://localhost:8020/SuperContainer (if running from the server machine)
 
</pre>
 
  
When specifying the "8020" port number, this indicates that you are running SuperContainer in "standalone-mode". If you receive a page that displays the version of SuperContainer, this means that you have deployed SC in standalone-mode (i.e. You have double-clicked the SuperContainerServer.jar file).
+
<pre>http://myServer.com:8020/SuperContainer/RawData/Asset/4321</pre>
  
=== Double Scroll Bars on Web Viewer===
+
If you know that a given resource is renderable by SuperContainer, you can inline the contents of the file in some other HTML page by using an img tag linked directly to the RawData URL, like this:
There have been some instances when double scroll bars have been displayed when viewing an image within a SuperContainer web viewer. If this is the case, it may be that the window size has been exploded/increased and is being viewed at a value greater than 100%. This has been known to force scroll bars to display even with the "style=noscroll" set as a URL parameter. Ensure that the window is being displayed at 100%(max) initially. If the size of the window needs to be edited after the preview is generated to a value greater than 100%, this is possible to do -- if done after the web viewer has loaded.
 
  
=== PC Users are getting a Security Warning when Uploading===
+
<pre>img src="http://myServer.com:8020/SuperContainer/RawData/Asset/4321"</pre>
If your users are getting an error similar to:
 
  
"Warning - Security"
+
Note that if Asset/4321 contains some non-image file, this will result in a broken image icon. A safer option is to use an iframe tag pointing to the Files URL for the given SuperContainer folderPath.
"Java has discovered application components that could indicate a security problem."
 
"Name: SuperContainer applet"
 
  
In the past, upgrading the Java JRE has fixed this issue. If you are running an older version of Java, try updating to the latest and see if this resolves the issue.
+
<!-- Please click [http://static.360works.com/sc_html.html here] for a more detailed explanation of using "RawData" in your SuperContainer URL. I hid this text for now. This page is non-maintained but I didn't want to delete it in case someone wanted to make it work-->
  
===Not able to upload large files, SC deployed with FMS===
+
==Applet vs. NoApplet==
IIS 7 has a default upload size configured at 30MB. This can be solved by adding the following code to the sites web.config file
 
 
<pre>
 
<system.webServer>
 
        <security>
 
            <requestFiltering>
 
                <requestLimits maxAllowedContentLength="2000000000"/>
 
            </requestFiltering>
 
        </security>
 
</system.webServer>
 
</pre>
 
  
===Image files are not resizing===
+
<b>Note:Oracle has dropped support for the Java Applet and thus so have we. Please use at your own discretion</b>
In it's normal configuration, SuperContainer can generate thumbnail images of JPEGs, PNGs, GIF files, and most TIFF files. It will not generate thumbnails for PDF files, CMYK JPEG or TIFF files, RAW files, or Photoshop files. If you are running the SuperContainer Server on OS X, you can enable OS X Core Image processing to resize more file types. See the 'Enabling OS X Core Image resizing' section above for instructions on doing this.
 
  
=== File looks like it uploaded but is not visible when I revisit the file/record ===
+
SuperContainer uses either a Java applet or an HTML interface for uploading, downloading, and displaying documents. You can explicitly specify which interface you want by adding the ?style=applet or ?style=noapplet parameter on to the end of your SuperContainer URL. See the section on [[#Customizing SuperContainer Appearance]] for more details.
The files are actually not being uploaded to the SuperContainer server at all! With the advent of the Apple bug and the disabling of the Drag-and-Drop feature, which hinged on the use of Java applets, users have been dragging files/folders to the SuperContainer web viewer (this does not actually upload the file to SuperContainer but instead only stores a temporary reference to the location of that file).  
 
  
In order for the file to be uploaded to the server, the user would need to click the button labeled "Upload File" after choosing/dragging the file to the Web Viewer.
+
If you do not specify whether to use the applet or html interface, SuperContainer will use the HTML 5 interface.
  
By default, the web viewer has a "Choose File" button and an "Upload File" button... I would suggest that you ensure that they are first selecting the file with the Choose File button then, clicking the "Upload file" button to actually send the file to the server.
+
===Applet Advantages===
  
NOTE: It is important to note that we have (fairly recently) released a newer version of SuperContainer (version 2.852), which restores the Drag-and-Drop functionality without using Java applets. By upgrading to the latest version, you should be able to successfully drag and drop files to the Web viewer without need of using the "Choose File" and "Upload File" buttons at all.
+
* Drag or paste a file into SuperContainer
 +
* Supports uploading directories, which are automatically zipped by the applet. Some documents (such as .pages documents) which appear to be files are in fact directories.
 +
* Double-clicking a file downloads the file into the downloads directory instead of opening it in the default application
 +
* Delete key deletes a file if SuperContainer is focused, so there is no need to display a "delete" button.
  
===Seeing the same document for all records===
+
===HTML Advantages===
If you're having a problem with all of your records pointing to the same SuperContainer file, and you see that replacing it in one record replaces it in all other records, it's because your URL is not unique for each record. Include the primary key, or some other unique value, into the Web Viewer URL for each record, and then each record will be associated with its own separate file
 
  
===How to handle "ERROR" response from plugin===
+
* Works in all browsers
If you try to call a plugin function, and you get a result of "ERROR", then call the SCGetLastError function to get a text description of what happened. It is always a good idea to have your scripts check the result of all plugin calls to see if an error occurred.
+
* Does not require Java to be installed on the user's computer
 +
* May load faster than the applet version
  
===List all locations of log files===
+
==Customizing SuperContainer Appearance==
When troubleshooting a problem that you're having, we may ask you to send us a copy of your log files. There are several different log files for the different components of SuperContainer, and they are located in different places depending on whether you are running on Windows or Mac.
 
  
* 360PluginBridge
+
The appearance of a SuperContainer page can be customized by setting custom style and background-color parameters in your SuperContainer URL. Some styles affect which controls are visible or hidden, others affect the layout arrangement, and others modify the font of the resource title.
** Macintosh: /Users/yourUserName/Library/Logs/360PluginBridge.log
 
** Windows: C:\Documents and Settings\All Users\Shared Documents\360PluginBridge.txt
 
  
* SuperContainer Server log:
+
There are two primary modes SuperContainer has for displaying images: Plain HTML and a Java Applet. The plain HTML is lighter-weight and loads more quickly, the applet allows much more interactivity such as drag-and-drop support. With versions 2.89+  noapplet is used by default. In order to use the Java applet the applet parameter must be used as shown below.
** Macintosh: /Users/Shared/SuperContainer/SuperContainer.log
 
** Windows: C:\Documents and Settings\SuperContainer\SuperContainer.log
 
  
* SuperContainer companion plugin log:
+
===="style" URL parameter====
** Macintosh: /Users/yourUserName/Library/Logs/360Works FM Pro/360Plugin.log
 
** Windows: C:\Documents and Settings\All Users\Shared Documents\360Works FM Pro\360Plugin.log
 
  
===Providing the correct value to SCSetBaseURL===
+
Specify a "style" url parameter to change the way a resource is displayed by SuperContainer. You can group multiple style names together with the "+" symbol. For example:
When calling SCSetBaseURL, you should include the portion of the URL up to and including the 'Files' portion, ie:
 
SCSetBaseURL("http://yourServer:portNumber/SuperContainer/Files")
 
  
When calling other plugin functions, just pass in the portion of the URL that comes after the 'Files' portion, ie:
+
http://yourServer.com:8020/SuperContainer/Files/Asset/4321?style=readonly+bold+large
SCGetContainer("Images/41")
 
  
===Problems installing Tomcat===
+
Here is a quick summary of the different styles that are available by default:
Some customers have reported seeing this error message when trying to start Tomcat, after downloading and installing it as a Windows Service:
 
<pre>
 
The Apache Tomcat service terminated with service-specific error 0 (0x0)
 
</pre>
 
This is not directly a SuperContainer problem, it is a problem with Tomcat. This can be caused by having Java 6 installed, instead of Java 5, if you are using Tomcat 5.5. Try downloading and installing Java 5 from www.java.com to see if that fixes the problem.
 
  
===Uploading package files===
+
=====Layout Styles=====
SuperContainer 2:  supports upload of package files.
 
  
SuperContainer 1: Some OS X files, such as rtfd documents, are not really files, they are folders which are presented as a single file icon by OS X. These files cannot be uploaded through a web browser unless they are first compressed, such as a into a .zip or .sit file.
+
;(empty)
 +
the default style looks like a container field, except there is an upload input if the resource is empty, and a delete button if it is non-empty.
 +
;listview
 +
:intended for use in list layouts, displays a small thumbnail or icon, with the filename to the right of it. All editing controls and other info are hidden. List view uses a default width and height of 64, but you can specify other dimensions by specifying your own width/height in the URL.
 +
;image_only
 +
:hides everything except the image or file icon.
 +
;showdelete
 +
:shows the delete button, which is not displayed by default. Note that the 'delete' context menu and DELETE key action are enabled by default.
 +
;nodelete
 +
:hides/disables the delete button, delete context menu, and DELETE key action.
 +
;upload
 +
:always show the upload button (even if the resource is non-empty).
 +
;noupload
 +
:never show the upload button (you can still upload a file by dragging or right-clicking).
 +
;readonly
 +
:hides the delete and upload buttons.
 +
;nopreview
 +
:hides the image or icon.
 +
;info
 +
:displays a table containing the filename, filesize, and date uploaded. This causes the title to be hidden, since that is included in the table.
 +
;title
 +
:always display the title, for both images and icons (by default, the title is hidden for images)
 +
;notitle
 +
:always hide the title
 +
;nolink
 +
:disable the hyperlink for the document. Clicking on a thumbnail or document will not do anything.
 +
;noapplet
 +
:Disables the applet view in SuperContainer 2. This will make SuperContainer work more like version 1.
 +
;applet
 +
:Enables the applet view in SuperContainer 2
 +
;noscroll
 +
:Hides scroll bars. Sometimes this is necessary when using very small (50px) web viewers, which display scroll bars even though the image would fit within the dimensions of the web viewer.
  
===Thumbnails Are NOT Generating===
+
=====Alignment Styles (only applies with noapplet style)=====
If you've customized the path were SuperContainer saves files, and lets assume that you're saving to a folder at the top level of an external drive.
 
Ex. save path /Volumes/External Drive/SuperContainer/
 
And you've only given write privileges to the SuperContainer directory you may experience problems with preview generation. The reason is that SuperContainer save the previews in the "thumbnails" directory at the same level as the directory where SuperContainer is writing the actual files. And if SuperContainer does not have write permissions it will fail in creating the "thumbnails" folder, thus failing to generate a preview.  There are two solutions, first give write permissions to SuperContainer so that the following structure is possible:
 
/Volumes/External Drive/SuperContainer/
 
/Volumes/External Drive/thumbnails/
 
Second solution is to point SuperContainer to the sub folder of the custom directory, like so:  point SuperContainer to /Volumes/External Drive/SuperContainer/Files for example, so that the "thumbnails" folder is created like so: /Volumes/External Drive/SuperContainer/thumbnails.
 
  
=== Out of Memory ===
+
;left
When resizing large images, SuperContainer may run out of memory. If you're running the SuperContainerServer.jar, you can launch it from the terminal with additional arguments which increase the maximum memory used by SuperContainer:
+
:aligns image, title, and controls to the left
<pre>
+
;right
cd /path/toSuperContainer
+
:aligns image, title, and controls to the right. There is no horizontal style to align to the center because that is the default.
java -Xmx600m -jar SuperContainerServer.jar
+
;center
</pre>
+
:aligns content in the center of the web viewer.
 +
;bottom
 +
:aligns content at the bottom of the web viewer. There is no 'top' style because that is the default.
  
If you're running SuperContainer in Tomcat, add this line to the top of <code>/Library/apache-tomcat-5.5.23/bin/catalina.sh</code>, right below the <code>#!/bin/sh</code>
+
===== Title Font Styles (only applies with noapplet style) =====
<pre>
 
JAVA_OPTS="-Xmx512m"
 
</pre>
 
  
===Same preview image after deleting a file and uploading new file===
+
;small, x-small, xx-small, large, x-large, xx-large
change Java Temporary Internet Files setting to NOT keep temporary files on the machine.
+
:sets the title size
 +
;bold
 +
:bolds the title
 +
;italic
 +
:italicizes the title
 +
;smallcaps
 +
:displays the title in smallcaps
  
===Standalone Mode on OS X Crashing ===
+
See the SuperContainer Example file for a demonstration of how setting different style parameters can affect the appearance of SuperContainer.
Newer versions of OS X use Java version 6 by default.  Due to 64-bit issues, SuperContainer CoreImage support does not work correctly in Java 6.  The workaround is to launch SuperContainerServer.jar using Java 5 instead.  Use the following command to launch SuperContainer in Java 5 (substituting the correct path in the first step):
 
<pre>
 
cd /path/to/SuperContainer
 
/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Commands/java -jar SuperContainerServer.jar
 
</pre>
 
  
===Registration is gone after restart===
+
==== "background-color" URL parameter ====
There is a possibility of a permissions problem with the registration information that is written to Java Preferences
 
Mac: remove <code>/Library/Preferences/com.prosc.supercontainer.plist file and re-register</code>
 
Windows:  remove the registration keys from <code>HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Prefs/com/prosc/supercontainer/model</code>
 
  
An ampersand (&) or other special characters in the "Registered To" field can cause trouble with registration. To fix this, you must hard-code the registration information into the web.xml file.  The ampersand must be coded as "&amp;" (without quotes) instead of just an ampersand.
+
Specify a "background-color" url parameter to set the background color of the BODY. This can be handy if you're using SuperContainer on a colored background, and want unused space to blend in. Note: this is not a style parameter, but its own separate URL parameter. So you might have a URL that looks like this (with a background color of rgb(10,20,30)):
  
===NAS Storage permissions problems===
+
http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=rgb(10,10,255)
Use UNC notation and refer to server by IP address.
 
  
===Error 500 in browser===
+
The background-color value can be a color name (green), rgb value (rgb(10,10,255)), or hex value (#336699). Note that for hex values, you'll need to escape the "#" symbol with a %23 in the URL.
Incorrect permissions is the likeliest cause of this error.
 
  
If using FMS deployment set the permissions to owner: fmserver rw group: fmsadmin rw
+
http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=%23336699
If using standalone deployment, set read/write permission for the currently logged in user.
 
If using Tomcat deployment, set read write for the user used to run tomcat.
 
  
Command line example for fixing permissions for FMS deployment:
+
==== Download only URL ====
cd /Users/Shared/
+
;downloadonly
chown -R fmserver:fmsadmin SuperContainer/
+
: when used with a RawData URL it will trigger a download of the file or thumbnail if the heigh or width are specified
chmod -R 775 SuperContainer/
+
Example:
 +
<pre>
 +
http://sc.360works.com/SuperContainer/RawData/pro/360/image?downloadonly
 +
</pre>
  
===FileMaker crashing, Java issues===
+
==== Customizing SuperContainer Behavior ====
This from Kirk Bowman's email:
 
# I had a Java install that was not listed under Add/Remove Programs. I was able to remove it with this tool which I found on the Java site.
 
<http://support.microsoft.com/default.aspx?scid=kb;en-us;290301>
 
<http://java.com/en/download/help/uninstall_java.xml>
 
# I had a second Java Install which was from a trial copy of Crystal Reports. This is the install Jesse noticed in the logs I sent. I removed it manually.
 
  
Once they were removed, I installed JRE 6 Update 7 (for FMS9 compatibility) and the crashes have stopped on Windows with the SuperContainer applet.
+
To disable opening a SuperContainer file in a new browser window, uncheck the Allow interaction with web viewer content checkbox in FileMaker for the Web Viewer component. You can then assign a button action to the web viewer to trigger a script when the web viewer is clicked.
  
===SuperContainerServer.jar crashes===
+
===Self Signed SSL support===
This crash may happen when 64 bit Java is used, since the core image C libs are compiled for 32 bit they won't work with 64 bit Java, the solution is to use 32 bit Java.
 
  
===Dude, where are my files?!===
+
selfsignedssl URL parameter will allow SuperContainer applet to interact with SuperContainer server which is accessed via a self signed SSL certificate.
On a Mac, if you configure SuperContainer to store images in a mounted
+
By default Java applets only support fully valid SSL certificates. Example:
volume, and one day it mysteriously stops seeing all the files it had
 
previously created, but otherwise seems to be working normal, there's a good
 
chance that someone tried to operate it while the volume was not mounted.
 
  
What SC does if you give it a path that doesn't exist, is it makes that path
+
https://localhost/SuperContainer/Files/asdf?selfsignedssl
for you. This is a useful feature in most cases, but if the volume you are
 
targeting is not mounted (on a Mac) SC will make a directory with the same
 
name as the volume in /Volumes. Then next time the volume actually is
 
mounted, the sym link in /Volumes gets a 1 appended to it. Fortunately this
 
is exceedingly simple to fix.
 
  
Mount the volume, copy any files that were uploaded into the imposter folder
+
<!-- (this feature has been added to SC but has not been released yet. When a new version has been pushed (current is 2.93) remove the comment markup to add this section back to the docs)
to the proper location in the volume, unmount the volume, delete the folder
+
===X-Frame-Options header===
and remount the volume. Done.
 
  
Jeremiah Small
+
Specify a "frameOptions" parameter in the SuperContainer URL to set the X-Frame-Options header in the HTTP response from SuperContainer. This is used to explicitly deny or allow SuperContainer URLs from loading in <frame>, <iframe>, and <object> tags in HTML pages. The available options are:
  
==Web publishing==
+
;DENY
===Using IFRAME with PHP / XSLT===
+
:prevent this URL from loading in any frame
To include SuperContainer in your Custom Web Publishing site, just use a FRAME or an IFRAME with the same URL that you would use for your FileMaker Web Viewer.
+
;SAMEORIGIN
 +
:only allow this URL to load in a frame on a page coming from the same origin
 +
;ALLOW-FROM uri
 +
:only allow this URL to load in a frame on a page coming from "uri".  
  
==Security==
+
So if you want to only allow the SC URL to be loaded in frames from the "www.google.com" URI, you would use something like this:
===Security concepts in SuperContainer===
 
There are several options available to protect the contents of SuperContainer. Here are some possibilities:
 
  
* Use the built-in username and password feature in SuperContainer: This will require users to enter a username and password before they can access the contents of SuperContainer. The advantage of this approach is that it is very easy to configure. The disadvantage is that if a user can access one item, they can also access any other item that they know the URL for. Another disadvantage is that all users share the same username and password.
+
http://localhost:8020/SuperContainer/Files/test?frameOptions=ALLOW-FROM%20www.google.com
  
* Use the username and password feature in Tomcat: Configuring this is beyond the scope of this document (see http://tomcat.apache.org for more information), but it basically works the same as the first option, with the addition of being able to configure separate usernames and passwords for each user.
+
''Note that the space between "ALLOW-FROM" and the uri is represented with a '%20''' -->
  
* Random URLs: This is probably the best approach to security, although it requires a little bit more programming work. Remember that nobody can access any document in SuperContainer unless they know the URL. By having each record include some random, hard-to-guess value, you can include that into the URL. Now each record can only be accessed if you, the FileMaker developer, choose to reveal the correct URL to them. As an example, change these URLs:
+
==File Storage==
<pre>
 
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/39
 
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/40
 
</pre>
 
To these:
 
<pre>
 
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/rjx11mp/39
 
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/82crlqq/40
 
</pre>
 
Now, malicious users cannot access unauthorized resources by simply incrementing the record ID.
 
  
Remember that you can combine these approaches as well - for example, using the built-in SuperContainer password with the random URL technique. Also see below for tips on SSL encryption.
+
===Default locations for SuperContainer===
  
===Embedding username and password in SuperContainer URL===
+
Mac OS X and Mac OS X Server
If you've specified a username and password that are required to access SuperContainer, you can include them in your Web Viewer URL like this:
 
<pre>
 
http://username:password@yourServer:8080/SuperContainer/Files
 
</pre>
 
  
Note that this behavior may not work in new versions of Microsoft Internet Explorer. See [http://support.microsoft.com/default.aspx?scid=kb;[LN];834489 this article] for more information.  If you are having trouble with IE, you can:
+
  /Users/Shared/SuperContainer
  
* Enter the username and password (users should only need to do this once per session)
+
Windows 7
* Tweak the registry as per the article mentioned above
 
* Switch to a [http://getfirefox.com different browser]
 
  
===Security issue with loading plugin in IWP===
+
C:\Users\<username>\Documents\SuperContainer\Files
The demo file that comes with SuperContainer disables many of the plugin functions when they are being accessed through Instant Web Publishing. For an explanation, read the [[Security issues with Web Publishing]] article.
 
  
===Using Apache's or IIS' SSL or Authentication settings===
+
'''Note:''' On some systems the "Documents" folder will be shown to the user as "My Documents"
[[redirecting SuperContainer request from Apache or IIS]]
 
  
===Redirecting SuperContainer request from Apache or IIS===
+
Windows XP and Windows Server 2003
[[redirecting SuperContainer request from Apache or IIS]]
 
  
==Usage tips==
+
C:\Documents and Settings\SuperContainer\Files
  
===Is opening the file to view it different with the noapplet parameter?===
+
Windows Vista, when running in Standalone mode
Yes, when not using the Java applet, SuperContainer will open files through the default web browser. For Mac OS X, this is Safari. For Windows, it is Internet Explorer. Each browser operates slightly different with various file types. Some browsers are able to render certain files (PDFs for example) like Safari, while others are unable to by default, like Internet Explorer and Firefox and instead download the file to the user's temporary or "Downloads" directory.
 
  
As a workaround you could use FileMaker's "Open URL[]" script step to open the file in the native application (ex., Adobe Acrobat for PDFs). An example of this is offered in our documentation for SCDownload() and attach this to a button on your layout. (See: "Opening a file in it's native program without Java Applets" below)
+
  C:\Users\<username>\SuperContainer\Files
  
===SuperContainer Security and Web Hosting===
+
Windows Vista or later, when running with Tomcat or FileMaker Server
This is an issue and question that surfaces consistently. While operating under a web interface, it can be extremely difficult for someone to be able to access the file(s) directly, especially if those files are placed outside of the website's root file directory. Unless there is FTP access enabled, then only if the setup is sloppily done with no real security.
 
  
One good piece of advice about security when using SuperContainer and the web -- since the S.C. interface uses a 'web address' to pull the file and display it on the web browser -- DO NOT use sequential numbers to identify your files. The reason for this is that if someone was paying even the slightest attention, they would notice that the web address will display the ID of the file, like this -
+
C:\Users\SuperContainer\Files
  
<pre>
+
===To configure a custom location===
http://www.yourServer.com/SuperContainer/Files/PDFs/1024/
 
</pre>
 
  
Nothing is stopping them from manually typing in the address bar
+
'''Standalone''': use the Option panel to specify a custom path.
  
<pre>
+
'''Tomcat or FMS deployment''': use the web.xml file to specify a custom path. Use a text editor to open the file and modify it
http://www.yourServer.com/SuperContainer/Files/PDFs/1025/
 
http://www.yourServer.com/SuperContainer/Files/PDFs/1026/
 
</pre>
 
  
and so on to view documents/pictures you didn't intend for them to see. Use a highly unique identifier instead, like a UUID. It'll will increase the size of your web address/URL, but this also makes it near impossible for someone to "guess" an address.  
+
'''Note:''' OS folder permissions do not usually allow for the web.xml file to be modified directly by a text editor. We recommend you move this file to your desktop and modify it there. Once you are finished move the web.xml file back to it's original location.
  
===Opening a file in it's native program without Java Applets===
+
Click  [http://docs.360works.com/index.php/SuperContainer_Tips_Tricks_and_FAQ#Configuring_where_SuperContainer_saves_files  here] for instructions on how to modify the web.xml file
You would want to use the SCDownload() function in conjunction with the Open URL script step. The SCDownload will grab the file from the SuperContainer server and place it on the user's local machine. Then the OpenURL script step will open the local document in whatever program it would natively open in:
 
  
Open URL [SCDownload("Photos/12345")]
+
===web.xml Locations===
 +
<b>**Note**</b>: If you did a manual installation of SuperContainer, the web.xml file will be found at INSTALLATION_PATH/SuperContainer/WEB_INF/web.xml. The following paths are for when the installer was used to install SuperContainer
  
As seen above, the only thing needed in the SCDownload() function -- as with most SuperContainer plug-in functions -- is the folderPath (everything after the "/Files" piece) that points to the file on the server. Also as seen above, is that there is no explicit file name that is passed in (as it should be). So, by following the above, you should be able to get your solution to work as expected.
+
'''Mac FMS deployment'''
  
Link to SC Companion plug-in function (SCDownload()):  
+
''FileMaker 11:''
http://360works.com/plugins/SuperContainer/plugin-documentation.html#SCDownload
+
/Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/SuperContainer/WEB-INF/web.xml
  
===Question about naming strategies. Address the FAQ of why everything is stored in folders===
+
''FileMaker 12:''
FIX! Fill this in
+
/Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/SuperContainer/WEB-INF/web.xml
  
===Editing documents and using the plugin to re-upload them===
+
''FileMaker 13 / SuperContainer 2.899 and earlier:''
FIX! Fill this in
+
/Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/SuperContainer/WEB-INF/web.xml
  
===Single record linking to multiple web viewers (ie. multiple URL's for a single record)===
+
''FileMaker 14+ / SuperContainer 2.9 and later:''
For the purposes of this example assume that we have a contact record that has to files attached to it, one file is the picture of the contact and the other file is contact biography Word file.
+
/Library/360Works/Applications/webapps/SuperContainer/WEB-INF/web.xml
  
In order to have both files linked to the same record they both need to have some common piece of information, such as a record ID. As well, they both need a differentiating attribute, file type is a good candidate.
+
'''Mac Tomcat deployment'''
  
Example URLs:
+
TOMCAT_HOME/webapps/SuperContainer/WEB-INF/web.xml
http://serverAddress:portNumber/SuperContainer/Files/recordID/FileType
 
  
http://192.168.2.1:8020/SuperContainer/Files/12/image
+
'''Windows FMS deployment'''
http://192.168.2.1:8020/SuperContainer/Files/12/document
 
or
 
http://192.168.2.1:8020/SuperContainer/Files/12/contact_image
 
http://192.168.2.1:8020/SuperContainer/Files/12/contact_bio
 
  
===Using SuperContainer with portals===
+
''FileMaker 11:''
Here is a link to a sample FileMaker database file that uses SuperContainer with portals, container fields, and integrates multiple files/documents in a related record:
+
C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\SuperContainer\WEB-INF\web.xml
  
demo.360works.com/SuperContainerDemo/PortalUseAdmin.fp7
+
''FileMaker 12:''
 +
C:\Program Files\FileMaker\FIleMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\bin\SuperContainer\WEB-INF\web.xml
  
===Using RawData URL to include images on public web site with an IMG tag.===
+
''FileMaker 13 / SuperContainer 2.899 and prior:''
FIX! Fill this in
+
C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\SuperContainer\WEB-INF\web.xml
  
===Viewing multiple page PDFs within the web viewer===
+
''FileMaker 14+ / SuperContainer 2.9 and later:''
There are two ways to accomplish that in SuperContainer.
+
C:\Program Files\360Works\Applications\webapps\SuperContainer\WEB-INF
  
1.
+
'''Windows Tomcat deployment'''
  
This requires that SuperContainer is running in 'standalone' mode on Mac. In this mode SuperContainer will automatically render the first page of the PDF.  To get a preview of another page just use the <strong>page</strong> parameter in your URL.
+
  TOMCAT_HOME\webapps\SuperContainer\WEB-INF\web.xml
EX:
 
http://localhost:8020/SuperContainer/Files/multi/page/PDF?page=1
 
http://localhost:8020/SuperContainer/Files/multi/page/PDF?page=4
 
  
2.
+
'''Note''': When specifing a custom location make sure that SuperContaier will have read/write privileges to the parent folder, thumbnails directory will be created in the same folder as the custom location.
  
This method requires that the system browser on user's machine is able to render PDF files. On Mac this is built in functionality, on Windows this can be accomplished by installing Adobe Acrobat plugin for IE or the equivalent.  To load the PDF file in the webviewer use the following URL:
+
'''Note''': C: represents the drive letter of the system drive.
http://localhost:8020/SuperContainer/RawData/multi/page/PDF
 
  
Using the context <strong>RawData</strong> tells SuperContainer to return the actual file stored instead of displaying a Java applet or HTML form to present the file.  And if the browser is able to render the PDF then it will be available to the user right in the webviewer.  Note that this method loads the complete PDF into the webviewer where the first method load just preview of a single page.
+
'''Note''': When changing the default location for Windows change the path for both "windowsFilesPath" and "vistaFilesPath"
  
===Industry-specific tips===
+
'''Note''': If a manual installation is done then the web.xml file will be in the WEB-INF in the SuperContainer folder in the <b>INSTALLATION PATH</b>
* [[Using SuperContainer in the Legal field]]
 
  
===Customizing the appearance of SuperContainer===
+
'''Note:''' If you are using a Mac, the SuperContainer installer will apply "No Access" privileges to the the SuperContainer folder and by extension the web.xml file. This is for security purposes You can safely modify the permissions on this file by "right-clicking" the web.xml file and selecting Get Info. At the bottom of the window, click the lock to authenticate. Once authenticated, change the Everyone permission to read/write. Once you have modified the web.xml file you can change this back to No Access.
FIX! Fill this in
 
  
=== Getting the file name of a SuperContainer file ===
+
==Integrating with or migrating from other FileMaker databases==
Easy-peazy with the SuperContainer Companion plug-in. Take a look at the following example:
 
  
<pre>GetValue( SCGetInfo( folderPath ) ; 1 )
+
=== Importing legacy container data into SuperContainer ===
</pre>
 
  
Where folderPath is the path to the file that is located on the SuperContainer server. If your web viewer URL is:
+
If you are migrating an existing FileMaker solution to use SuperContainer, you need a way to move your existing container fields over to SuperContainer. You can accomplish this by using the SuperContainer Companion Plugin. Simple write a script that loops through your records and call <pre>SCSetContainer("Asset/" & Asset::ID ; Asset::OldContainerField) </pre>for each record you wish to move over. See the [http://www.360works.com/plugins/SuperContainer/plugin-documentation.html Companion Plugin documentation] for more details, or watch a video demonstrating how to do this at http://www.360works.com/supercontainer/demos/set_container/
<pre>"http://servername:8020/SuperContainer/Files/Employee/Document/" & Document::ID
 
</pre>
 
your folderPath would be: "Employee/Document" & Document::ID
 
  
This uses the GetValue() function and grabs the first line from the SCGetInfo() return-separated list. The first line (1), being the file name.
+
===Importing SuperContainer resources from the file system===
  
===Using image transparency with SuperContainer===
+
If you have a directory full of files you wish to add to SuperContainer, you can either copy them to the directory where SuperContainer stores its files, or use the companion plugin function SCScanDirectory to return a list of files in a directory. You can optionally set a flag to scan for files recursively. See the Companion Plugin documentation for more details.
To use image transparency with SuperContainer, such as with a .png file, you must add "?style=noapplet" to the end of your supercontainer URL.  Using this mode, you will not have drag and drop capabilities, so if you need this, you can have one web viewer on one layout without this parameter for dragging and dropping, and then the other web viewer on the layout that needs transparency. Consider that SuperContainer will not automatically detect width and height in this mode, and so you will also need to add "width=x&height=y".
 
  
Example:  http://yourServer/SuperContainer/Files/path/to/files?style=applet&width=250&height=275
 
  
 +
==Web publishing==
 +
===Using IFRAME with PHP / XSLT===
 +
To include SuperContainer in your Custom Web Publishing site, just use a FRAME or an IFRAME with the same URL that you would use for your FileMaker Web Viewer.
  
===Storing the filename of an uploaded file in a FileMaker field===
+
==Security==
If you want to store the name of an uploaded file into a FileMaker field, first ask yourself whether it's really necessary. The way that SuperContainer is designed, FileMaker does not need to know the filename in order for the user to upload, download, view, print, or delete the associated document. However, FileMaker does need the filename in order to do searches on it.
+
===Security concepts in SuperContainer===
 +
There are several options available to protect the contents of SuperContainer. Here are some possibilities:
  
If you decide that you need to store the filename in a field, there are two approaches, which both involve the optional SuperContainer Companion Plugin.
+
* Use the built-in username and password feature in SuperContainer: This will require users to enter a username and password before they can access the contents of SuperContainer. The advantage of this approach is that it is very easy to configure. The disadvantage is that if a user can access one item, they can also access any other item that they know the URL for. Another disadvantage is that all users share the same username and password.
  
* Option 1: Do not use the Web Viewer to upload files - instead use the SCChooseFile plugin function to get the path of the requested file. Then you can extract the name of the selected file into a FileMaker field, and use SCSetContainer to upload the document to SuperContainer. This option is very reliable, but will not work with the Web Publishing Engine (because the SCChooseFile function does not work on the web).
+
* Use the username and password feature in Tomcat: Configuring this is beyond the scope of this document (see http://tomcat.apache.org for more information), but it basically works the same as the first option, with the addition of being able to configure separate usernames and passwords for each user.
* Option 2: Use the Web Viewer to upload the file, and then have a 'save' or 'continue' button that the user clicks after completing the upload. This can then use the SCGetInfo plugin function to get the name of the file and store it into a FileMaker field. This option is the one to choose if you need this to work with the Web Publishing Engine.
 
  
===Preview TIFF images===
+
* Random URLs: This is probably the best approach to security, although it requires a little bit more programming work. Remember that nobody can access any document in SuperContainer unless they know the URL. By having each record include some random, hard-to-guess value, you can include that into the URL. Now each record can only be accessed if you, the FileMaker developer, choose to reveal the correct URL to them. As an example, change these URLs:
Run SuperContainer on a Mac in standalone mode, by executing SuperContainerServer.jar file
+
<pre>
 
+
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/39
===Using SCScanDirectory()===
+
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/40
 +
</pre>
 +
To these:
 
<pre>
 
<pre>
Set Variable [ $setBaseURL ; SCSetBaseURL() ]
+
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/rjx11mp/39
 +
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/82crlqq/40
 +
</pre>
 +
Now, malicious users cannot access unauthorized resources by simply incrementing the record ID.
  
Set Variable [ $files ; SCScanDirectory( pathToDir ) ]
+
Remember that you can combine these approaches as well - for example, using the built-in SuperContainer password with the random URL technique. Also see below for tips on SSL encryption.
  
Set Variable [ $counter ; 1 ]
+
===Embedding username and password in SuperContainer URL===
Loop
+
If you've specified a username and password that are required to access SuperContainer, you can include them in your Web Viewer URL like this:
Set Variable [ $upload ; SCSetContainer( folderPath ; MiddleValues ( $files ; $counter ; 1 ) ) ]
+
<pre>
if [ $upload = "ERROR" ]
+
http://username:password@yourServer:8080/SuperContainer/Files
Show Custom Dialog [ "EROR" ; SCLastError ]
 
End If
 
Set Variable [ $counter ; $counter + 1 ]
 
Exit Loop If [ $counter = ValueCount ( $files ) ]
 
End Loop
 
 
</pre>
 
</pre>
  
===Why can't SuperContainer store multiple files in a single directory?===
+
'''Note:''' this behavior is not supported in new versions of Microsoft Internet Explorer. See [http://support.microsoft.com/default.aspx?scid=kb;[LN];834489 this article] for more information. If you are having trouble with IE, you can:
One of the original design goals of SuperContainer was that it would work without requiring any plugins. This led to a series of decisions:
 
* FileMaker is not capable, without plugins, of knowing the name of a file on the hard drive.
 
* Therefore, it is logically impossible to embed the name of the file into a Web Viewer using only features built into FileMaker.
 
* To solve this problem, we made it so that instead of representing the file name, the URL would just represent the folder that the file is stored in. This can be picked by the developer without regard to the actual name of the file.
 
* Since this folder reference needs to unambiguously identify a particular file, it follows that a 1 folder must equal 1 file. If you reference a folder in SuperContainer that contains more than 1 file, it will just retrieve the first file it finds, ignoring any others in the same folder.
 
  
Some of our customers do know the names of the files that they are storing, and it seems natural to them to store many files in a single folder. In this case, we make the following recommendations:
+
* Enter the username and password (users should only need to do this once per session)
* Don't worry about it - just go ahead and use the file name in the URL. This will result in the file being nested one level deeper than necessary, but it doesn't hurt anything. For example, let's say you have a file called 'MyFavoriteFlower.jpg'. If you set your URL to '/SuperContainer/Files/images/MyFavoriteFlower.jpg', then it will be stored with this path on the server: images/MyFavoriteFlower.jpg/MyFavoriteFlower.jpg. Other than being a little annoying to know about this is harmless.
+
* Tweak the registry as per the article mentioned above
* Drop the filename from the URL - SuperContainer will still store it just fine on the server. So for the above example, let's use the record ID (let's pretend it's record #17) instead of the filename: '/SuperContainer/Files/images/17'. This will be stored on the server as images/17/MyFavoriteFlower.jpg. This is a better approach than the first option, because if you have another different file called MyFavoriteFlower with record #18, it will be stored in images/18/MyFavoriteFlower.jpg with no name conflicts.
+
* Switch to a [http://getfirefox.com different browser]
* Remember, in SuperContainer 2, you upload entire directory structures to SuperContainer, so if you have a folder on your desktop named 'CoolStuff' that contains 'MyFavoriteFlower.jpg', 'MyFavoriteTree.jpg', and 'MyFavoriteBug.jpg', you can upload that folder into a single folder in SuperContainer. If your URL is /SuperContainer/Files/19, it will be stored on the server as a single zipped file in 19/CoolStuff.zip.
+
* Add the username and password as additional key=value pairs to your Web Viewer URL like this:
 
+
<pre>
===Enabling QuickLook===
+
http://yourServer:8080/SuperContainer/Files?username=yourUsername&password=yourPassword
<strong>OS X 10.6 Snow Leopard and 10.7 Lion Only</strong>
+
</pre>
<code>/Library/Preferences/com.prosc.supercontainer.properties</code>
+
Remember there should only be one question mark ("?") separating the URL from additional parameters. All other additional parameters should be separated by an ampersand ("&"). e.g., if your Web Viewer URL has a style parameter of "noscroll" and you want to add the username and password parameters as key=value pairs, the URL might look like this:
 
+
<pre>
It should contain this single line:
+
http://yourServer:8080/SuperContainer/Files?style=noscroll&username=yourUsername&password=yourPassword
<code>quickLookEnabled true</code>
 
 
 
===Apache upload limit===
 
Edit the "server.xml" file located in your Apache Tomcat Directory.  
 
Add/Edit the "maxPostSize" attribute in the "Connector" element to increase the size.
 
 
 
<pre>     <Connector port="8080" maxHttpHeaderSize="8192"
 
              maxThreads="300" minSpareThreads="25" maxSpareThreads="75"
 
              enableLookups="false" redirectPort="8443" acceptCount="1024"
 
              connectionTimeout="20000" disableUploadTimeout="true"
 
              compression="on"
 
              maxPostSize="104857600" />
 
 
</pre>
 
</pre>
  
Here is a link with more detailed instructions:
+
===Security issue with loading plugin in IWP===
 
+
The demo file that comes with SuperContainer disables many of the plugin functions when they are being accessed through Instant Web Publishing. For an explanation, read the [[Security issues with Web Publishing]] article.
http://tomcat.10.n6.nabble.com/Setting-max-file-upload-size-td2010633.html
 
 
 
===IIS upload limit===
 
  
http://support.microsoft.com/kb/942074/
 
  
<code>iis config file: %windir%\system32\inetsrv\config\applicationhost.config</code>
+
<center>[[File:ReturntoMainPage.png| 140 px |link=http://www.360works.com/products/ |alt= 360Works Plugins for FileMaker |FileMaker Help]]</center>
<pre>
 
<system.webServer>
 
        <security>
 
            <requestFiltering>
 
                <requestLimits maxAllowedContentLength="524288000"/>
 
            </requestFiltering>
 
        </security>
 
</system.webServer>
 
</pre>
 

Revision as of 19:43, 18 July 2023

日本語

SuperContainer Documentation SuperContainer Companion Plug-in Troubleshooting and Known Issues Advanced Configs, Tips, Tricks, and FAQ PHP Documentation

SuperContainer eliminates the hassle of dealing with container fields in FileMaker. It runs as a web-based java application which allows you to upload, view, and download scaled images and files from an embedded web viewer in FileMaker (introduced in FileMaker 8.5).

It is an effective replacement for container fields in solutions which require users to read and store files associated with records in FileMaker container fields, and offers numerous advantages over container fields.

SuperContainer is designed to be used from within a Web Viewer layout element in FileMaker, by pointing the Web Viewer to a URL that uniquely identifies a file resource you wish to store. This URL can contain any number of arbitrary path components.

In addition, SuperContainer ships with a Companion Plugin that allows you to automate access to SuperContainer resources. Consult the documentation in the SuperContainer Companion Plugin directory for more details and examples.

System Requirements

  • FileMaker Clients:
    • Must be running FileMaker 12 or later to view the items stored in SuperContainer.
    • To use the optional SuperContainer companion plugin or the browser-based drag-and-drop functionality, Windows clients must have Java 1.6 or later installed. Get Java here
  • Web Clients (Instant Web Publishing)
    • To use the browser-based drag-and-drop functionality, Windows clients must have Java 1.6 or later installed.
  • Server:
    • Macintosh OS X: Mac OS X 10.10 or later
    • Windows: Windows 7, Windows 8, Windows Server 2003, Windows Server 2008, or Windows Server 2012; Java 1.6 or later
    • Linux/Solaris: Java 1.6 or later

If your computer does not have Java installed, you may download it at http://java.sun.com/javase/downloads/index.jsp

Installation: Deployment Options

You can run SuperContainer as a standalone application, or by bundling into FileMaker Server Advanced, or in your own copy of Tomcat.

Note: There is an incompatibility with older versions of some 360Works plugins. If you are using other 360Works plugins, be sure to download new versions at http://360works.com/products/

Note: If you are upgrading from a version older than 1.3, be aware that the URL formats have changed in SuperContainer.

Option 1: Using SuperContainer as a standalone server application

Example of SuperContainer as a standalone server application

This approach is excellent for simple deployment, as well as for testing and development. There's no installation required, you just start the server and immediately begin using it. You will need to start the SuperContainerServer every time the machine it is running on is rebooted. This deployment option does require Java to be installed.

Macintosh or Windows: Double-click the SuperContainerServer.jar file to start the standalone application. Once the application is running, you should be able to view the opening page at http://localhost:8020/SuperContainer . The server application allows you to specify where uploaded files are stored, and customize several other settings. To restrict unwanted access to your SuperContainer files, enter a username and password in the options dialog.

Deploying SuperContainer in standalone mode on Mac OS X enables CoreImage rendering support. See the Supported Image Formats and CoreImage rendering section for more information.

Notes

  • the standalone application must be in the same directory as the SuperContainer application folder.
  • Starting with SuperContainer 3.0, you will need Java 17 to run the stand alone .jar file. Versions previous to 3.0 require Java 8.

Changes for OS X Catalina or later

Starting in OS X Catalina, the Gatekeeper utility is much more restrictive on third party applications/software downloaded from the internet. If you intend to use the Standalone option, downloading SuperContainer from our website will cause Gatekeeper to set the quarantine flag which will prevent the .jar file from being launched. To circumvent this, we recommend using cURL from Terminal to download the application. Open Terminal and run the following the command:

curl -L https://secure.360works.com/360Store/WebObjects/360Store.woa/wa/ProductDownload/SuperContainer -o ~/Downloads/SuperContainer.zip

This will create a file called SuperContainer.zip in your Downloads folder.

Curlcommand.png

3. Unzip the .zip file and then double click the SuperContainerServer.jar file. You may still see a warning about being downloaded from the internet. Choose open/open anyway.

4. The Gatekeeper utility sometimes also flags the library we use to make thumbnails of certain file types like pdfs. It is a good idea to open this file as well to let gatekeeper know it is approved. There is a SuperContainer directory in the download. Go to SuperContainer -> WEB-INF -> Classes. Right click libImageResize.jnilib and say open it with a text editor. You can then immediately close the file and it will be approved by gatekeeper.

If doing so does not resolve the issue, please send an email to support@360works.com

Option 2: Installing SuperContainer with FileMaker Server

Example of SuperContainer as a standalone server application

This approach is recommended if you want to run SuperContainer on a dedicated server which is also running FileMaker Server 12+

Copy the entire SuperContainer download folder to your server, and double-click the "Mac Installer.app" (Mac) or "WindowsInstaller.exe" (Windows) file in the SuperContainer folder. For Linux installation, please see the instructions here


The SuperContainer Installer takes care of the following for you:

  • Adds SuperContainer web application to the hosting folder of Tomcat built into WPE.
  • Backs up and modifies webserver configuration to make SuperContainer available on port 80.
  • Backs up and reapplies SuperContainer settings from previous versions if such exist (see below for notes on this).
  • Once installation is complete, restart the machine and then point your browser to http://serverAddress/SuperContainer.

Notes

  • If installing on OS X, your system may report the installer to be damaged. This usually indicates that you need to set Gatekeeper to "Allow apps downloaded from: Anywhere". Please see this support article. If that is enabled and you still are seeing this, please contact 360Works email support. New versions of Mac OS no longer allow for you to set this. If you see that the OS has blocked the app from running, go into System Preferences->Security and click Open Anyway.
  • Upgrading SuperContainer on FileMaker Server using the installer will overwrite the web.xml file used for custom storage of SuperContainer files (see here for a list of locations of the web.xml file). If you have modified this file with a custom path then please make a copy prior to upgrading. After the upgrade is finished you should place the copied web.xml file back to it's original directory (replacing any other versions in that directory).
  • If you are running the Apache web server built into OS X Server (the "Web" module), you must restart it to reload the configuration files used by SuperContainer. Apache should be restarted after both an automatic or manual installation.
  • If you have trouble running the installation file, you can perform a manual installation as an alternative.
Manual Installation with FileMaker Server

Please be sure to review the Notes section just above

  1. Determine your INSTALLATION_PATH
    • FMS14+ on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
    • FMS13 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
    • FMS12 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/
    • FMS11 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
    • FMS10 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
    • FMS9 on OS X: /Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/
    • FMS8 on OS X: /Library/FileMaker Server/Web Publishing/jakarta-tomcat/webapps/
    • FMS7 on OS X: /Library/FileMaker Server 7/Web Publishing/jakarta-tomcat/webapps/
    • FMS13+ on Win: Please see the next section for specific instructions
    • FMS12 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\
    • FMS11 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
    • FMS10 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
    • FMS9 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\
    • FMS8 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\jakarta-tomcat\webapps\
    • FMS7 on Win: C:\Program Files\FileMaker\FileMaker Server\Web Publishing\jakarta-tomcat\webapps\
  2. Copy the SuperContainer folder to your INSTALLATION_PATH. Only copy the directory called 'SuperContainer', not the entire SuperContainer_2.0 directory.
  3. Modify the tomcat configuration files to serve SuperContainer content on port 80
    1. Determine your TOMCAT_CONFIG_FILE path
      • Mac OS X (for FMS12,13, & 14): locate mod_proxy.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
      • Mac OS X (for FMS11 and below): locate mod_jk.conf or mod_jk_paths.conf in /Library/FileMaker Server/Admin/admin-helper/WEB-INF/conf/
      • Windows: locate uriworkermap.properties file in C:\Program Files\FileMaker\FileMaker Server\Admin\admin-helper\WEB-INF\conf\
    2. Add the appropriate lines to mount the SuperContainer webapp

Mac OS X (for FMS12-14):

ProxyPass /SuperContainer http://127.0.0.1:16020/SuperContainer
ProxyPassReverse /SuperContainer http://127.0.0.1:16020/SuperContainer

Mac OS X (for FMS11):

JkFmMount /SuperContainer/* cwpe
JkFmMount /SuperContainer cwpe

Windows (for FMS12):

/SuperContainer/*=jwpc
/SuperContainer=jwpc

Windows (for FMS11):

/SuperContainer/*=cwpe
/SuperContainer=cwpe

After saving your changes, restart your web service and all associated services (Tomcat, IIS, FMS).

Manual Installation to FileMaker Server 13+ on Windows
  1. Determine your INSTALLATION_PATH
  2. C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\
  3. Copy the SuperContainer folder to your INSTALLATION_PATH. Only copy the directory called 'SuperContainer', not the entire SuperContainer_2.0 directory.
  4. FileMaker Server 13+ use the URL Rewrite module of IIS to redirect traffic from the native HTTP Tomcat port 16020 to the standard web traffic port 80
    • Launch the IIS Manager, expand the Sites folder, then click on the FMWebSite site. You will see a collection of modules in the center pane of IIS Manager.
    • Double click the module that reads URL Rewrite.
    • In the right hand pane, click Add Rule(s) at the very top of the list of actions.
    • From here, choose Blank rule and press OK
    • Set up the rule to match the pattern for the requested URL using regular expressions.
    • Set the pattern as ^SuperContainer(.*)
    • Scroll down to the action section and be sure the action type is set to Rewrite
    • Set the Rewrite URL as http://localhost:16020/SuperContainer{R:1}
    • Be sure Append query string and Stop processing of subsequent rules are both checked, then apply the settings and test the the SuperContainer URL in your browser (http://localhost/SuperContainer)

Option 3: Installing SuperContainer with Tomcat

Example of SuperContainer as a standalone server application

This approach is recommended for advanced users if you are running Linux, Solaris, or any other computer not running FileMaker Server Advanced.

You must have a copy of Tomcat (downloadable from http://tomcat.apache.org) installed and running.

  1. Download latest SuperContainer form www.360works.com/supercontainer/
  2. Extract the downloaded zip
  3. Stop Tomcat, either using the 'badge' icon in the bottom right corner on Windows, or by stoping service.
  4. If desired, customize the settings found in the SuperContainer/WEB-INF/web.xml configuration file. You can customize the path where files are stored, as well as set a username and password to protect your SuperContainer files.
  5. Copy the SuperContainer folder into the Tomcat webapps folder. Usually it's located: C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps
  6. Go to http://serverAddress:8080/SuperContainer to make sure that SuperContainer is running correctly. Note that the default port with Tomcat is 8080, instead of 8020 for standalone mode.

Migrating SuperContainer to another FMS machine

If you need to move SuperContainer to a new machine because you are moving FileMaker Server, the migration process is relatively straight forward. First, copy over the Files(or whatever you have named it) folder, that contains the files SuperContainer is serving, to the new machine. You will want to place the files in the same location on the new machine as they were on the old. If you are using a non-default location, copy over the web.xml file and place it on the desktop. If you are accessing SuperContainer on a non default port, you will also want to copy over the TOMCAT_CONFIG_FILE. The name of this file varies depending on OS and version of FileMaker Server. See this section to determine the name and location of the file. Once you have done that, run the SuperContainer installer to install SuperContainer. Once it has installed, replace the new web.xml file and TOMCAT_CONFIG_FILE with the ones you copied over from the old machine and then restart the machine. Once it has restarted, SuperContainer should be up an running on the new machine. This process varies slightly with the standalone jar option. Instead of a web.xml file, you will change the location of the Files folder in the options menu of the Standalone GUI.

Using SuperContainer in your FileMaker solution

Let's walk through setting up SuperContainer for a sample FileMaker solution. We will assume for these examples that your server is called 'yourServer.com', and that you have a table occurrence called 'Asset' with a field called 'ID'. This ID field is how you want to reference your files on the server. Substitute the actual values for your situation.

Registration

By default, SuperContainer will run in demo mode, which must be restarted every 2 hours. It will also display a small "DEMO" flag on all pages. You can activate the software at http://hostname/SuperContainer/Registration. If you are using the standalone version of SuperContainer the registration URL is http://hostname:specified port/SuperContainer/Registration. Standalone uses port 8020 by default so if you have not changed this in the standalone UI then specified port should be 8020. This will remove the "DEMO" flag and will no longer time out after 2 hours.

SuperContainer URLs

You will need to start by creating a web viewer in your FileMaker layout, and assign a SuperContainer URL to the web viewer. The first part of the URL is always:

http://yourServer.com:portNumber/SuperContainer/Files
  • Note: when installed with FileMaker Server you do not need to specify the port number


After that, you specify where on the server you want the uploaded file to be stored. You can include slashes in the URL to store the files subfolders, like this:

/path/to/file

You can also specify optional parameters in the URL which affect the behavior of SuperContainer. See the #Customizing SuperContainer Appearance section for more about how to customize the SuperContainer display.

Typically, you would include the name of the table and the unique ID of the record into the URL, so if SuperContainer is running on the default port of 8020 for our example 'Asset' table, your URL for record number 4321 would look like this:

http://yourServer.com:8020/SuperContainer/Files/Asset/4321

The FileMaker calculation to do this would look like this:

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID

Note that the SuperContainer URL can contain as many elements as you like. If a given asset can have 3 images uploaded to it, you could either create a new table for holding the images, or use the following URL schema:

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/1"

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/2"

"http://yourServer.com:8020/SuperContainer/Files/Asset/" & myTable::ID & "/3"

Uploading Files

There are several ways to upload files to SuperContainer. The simplest is to drag a file or directory onto the SuperContainer window, which immediately uploads the file, displaying a progress bar during the upload process.

If you are looking at a SuperContainer URL which has no file uploaded to it, by default an "Upload file" button is displayed. You can use this button or right-click/ctrl-click to display a file chooser dialog. Select a file or directory to upload and click "OK", which then uploads the file, displaying a progress bar during the upload process.

Accessing Files

Once a file has been uploaded to SuperContainer, it is displayed at the current width of the browser window (for images) or displayed as a file icon (for non-images).

Double-click on a file to download the file to the local computer and open it in the default application for that file type. Alternately, you can right-click and choose "Open in default application".

To save a file to a custom location, right-click and choose Save file.... This opens a file chooser dialog where you can specify where to save the file.

To view a resource in your browser, right-click and choose View in browser. This opens a RawData URL in your browser which points to the raw file contents.

Deleting Resources

To delete a resource, use the "delete" button or context menu. Dragging a new file into SuperContainer will also delete any existing file.

Using SuperContainer with FileMaker Go

You do not need to change anything in SuperContainer to use it with FileMaker Go. SuperContainer will detect that it is being viewed in FileMaker Go and automatically switch to 'noapplet' mode, which means that it will use HTML instead of a Java applet (Java is not supported on iOS). There are a few behavior differences to be aware of when using SuperContainer with FileMaker Go:

  • If you click on an item stored in SuperContainer, it will render at full size within the web viewer. In the case of Word or PDF documents, you will see the contents of the file inside the web viewer, and for QuickTime movies, you will see the movie play within the web viewer (if it is encoded in a format supported by iOS). This is different than the regular SuperContainer behavior, which opens a separate browser window to display the full resource.

If you would like to view the SuperContainer resource in a full-screen browser window in FileMaker Go, you will need to add a button or script that calls the 'Open URL' script step. The URL should be the regular SuperContainer URL with the word 'RawData' in place of 'Files' (see 'RawData URLs' below for more information). Thus, the script step would look like this:

Open URL[ Substitute( SuperContainer URL; "/SuperContainer/Files/"; "/SuperContainer/RawData/" ) ]

There is a 9-minute movie available on Youtube demonstrating SuperContainer features on FileMaker Go: http://www.youtube.com/watch?v=ZPw3uibJC_c

Specifying image dimensions

SuperContainer automatically detects the size of the web viewer or web page that it is displayed on, and generates a thumbnail to exactly match the display size. You do not need to do anything for this to work. However, you may optionally want to display the image at a different size than the web viewer. In that case, you can include a width and/or height parameter in your URL, like this:

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=500

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?width=400

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?height=64&width=64

Embedding authentication username and password in the URL

If you have password-protected your SuperContainer installation and don't want users to be prompted for a username and password, you can embed this information directly into your URL. For a username of "bob" and password "secret", you can do the following (Note: This method may cause a Phishing warning to appear in your browser due to the deprecation of this method of authentication. The URL parameter method is preferred if possible):

http://bob:secret@yourServer.com:8020/SuperContainer/Files/etc...

Note: this is not a foolproof means of preventing users from finding out the username and password! The password will be shown briefly when loading the page, and again when clicking on a link to download the image.


Alternately, you can include the username and password as regular URL parameters (version 2.54 and later). To do this, include a username and password parameter in your SuperContainer URL, for example:

http://yourServer.com:8020/SuperContainer/Files/testing?username=bob&password=secret

This is useful for Internet Explorer users whose security settings prevent the browser from allowing authenticationi from being embedded in the URL.

Specifying a custom resolution

If you need to print images from SuperContainer, you can specify an optional resolution parameter, telling SuperContainer to display images as hi-res. The default resolution is 72. If you specify a different resolution, SuperContainer will return a large image, and will alter the HTML img tag to have the correct width and height.

Note: you should also specify style=noapplet when printing, and specify a maximum width/height.

Here is an example URL with a resolution parameter set:

http://yourServer.com:8020/SuperContainer/Files/xyz?width=64&height=64&resolution=300&style=noapplet

If the original image is large enough, this results in an on-screen image no larger than 64x64 pixels, with a resolution of 300 DPI. If the image is not large enough, the DPI will be scaled down to no less than 72 DPI.

Note: for performance reasons, you should only specify a resolution parameter for print-specific layouts. The server needs to do additional work analyzing the image if there is a resolution parameter, and the resulting image is also larger than necessary for on-screen viewing.

Printing Images from SuperContainer

SuperContainer is access from a web viewer, and because of this printing before your image has completely downloaded or the applet has been loaded is a possibility. To make sure that you do not print before you have completely downloaded your image from SuperContainer it is recommended that you do one of the following:

A. Download the image to an unstored calc using the SCGetContainer function of the SuperContainer Companion plugin - This solution will automatically download the image at the full resolution for printing, however you will need to have the Companion Plugin installed.

B. Use "noapplet" mode with a specified height, width, and resolution parameter as well - This option still risks printing before your download has finished, but reduces some of the risk of your print not working properly due to the java applet. You may want to add a one or two second pause to make sure that your images completely download.

Supported Image Formats and CoreImage rendering

SuperContainer by default currently supports thumbnail generation for the following image formats: bmp, jpg, gif, png, jpeg2000, raw, pnm, and tiff (on some platforms). Some images may use a compression format that SuperContainer cannot resize. These will always be displayed as full-size images.

SuperContainer 2.0 and higher running in standalone mode on OS X uses OS X's CoreImage rendering to generate thumbnails. In addition to being significantly faster, CoreImage can render almost any image format you throw at it, including PDF, EPS, SVG, TIFF, Photoshop, and many more.

Note that CoreImage only needs to be running on the server, any client connecting to SuperContainer will see the rendered thumbnails. This means Windows FileMaker clients can see PDF content previews in their web viewers.

Using SuperContainer outside FileMaker

SuperContainer is a web-based application, so you can access it from anywhere you have a network connection. If you are using custom web publishing or writing tools in other languages, you can still have access to your SuperContainer data.

Custom Web Publishing

Version 2 of SuperContainer includes a PHP API for interacting with SuperContainer from your custom web publishing applications. Simply include() the PHP/supercontainer.php file in your PHP script, then use the included functions to upload, download, delete, and query the server.

See the SuperContainer PHP Documentation.html in the Support files/PHP directory of your SuperContainer download for more info. Please note that this is included as a convenience and is not a supported configuration.

Java Integration

There is a developer's Java API available separately. If you're writing a server-side java application or a desktop swing application, this provides an easy way to integrate with SuperContainer. Contact 360Works for more info on this.

RawData URLs

If you want to link directly to the contents of a SuperContainer file, you can use a RawData URL. Simple replace the word "Files" with RawData" in your SuperContainer URL, like this:

http://myServer.com:8020/SuperContainer/RawData/Asset/4321

If you know that a given resource is renderable by SuperContainer, you can inline the contents of the file in some other HTML page by using an img tag linked directly to the RawData URL, like this:

img src="http://myServer.com:8020/SuperContainer/RawData/Asset/4321"

Note that if Asset/4321 contains some non-image file, this will result in a broken image icon. A safer option is to use an iframe tag pointing to the Files URL for the given SuperContainer folderPath.


Applet vs. NoApplet

Note:Oracle has dropped support for the Java Applet and thus so have we. Please use at your own discretion

SuperContainer uses either a Java applet or an HTML interface for uploading, downloading, and displaying documents. You can explicitly specify which interface you want by adding the ?style=applet or ?style=noapplet parameter on to the end of your SuperContainer URL. See the section on #Customizing SuperContainer Appearance for more details.

If you do not specify whether to use the applet or html interface, SuperContainer will use the HTML 5 interface.

Applet Advantages

  • Drag or paste a file into SuperContainer
  • Supports uploading directories, which are automatically zipped by the applet. Some documents (such as .pages documents) which appear to be files are in fact directories.
  • Double-clicking a file downloads the file into the downloads directory instead of opening it in the default application
  • Delete key deletes a file if SuperContainer is focused, so there is no need to display a "delete" button.

HTML Advantages

  • Works in all browsers
  • Does not require Java to be installed on the user's computer
  • May load faster than the applet version

Customizing SuperContainer Appearance

The appearance of a SuperContainer page can be customized by setting custom style and background-color parameters in your SuperContainer URL. Some styles affect which controls are visible or hidden, others affect the layout arrangement, and others modify the font of the resource title.

There are two primary modes SuperContainer has for displaying images: Plain HTML and a Java Applet. The plain HTML is lighter-weight and loads more quickly, the applet allows much more interactivity such as drag-and-drop support. With versions 2.89+ noapplet is used by default. In order to use the Java applet the applet parameter must be used as shown below.

"style" URL parameter

Specify a "style" url parameter to change the way a resource is displayed by SuperContainer. You can group multiple style names together with the "+" symbol. For example:

http://yourServer.com:8020/SuperContainer/Files/Asset/4321?style=readonly+bold+large

Here is a quick summary of the different styles that are available by default:

Layout Styles
(empty)

the default style looks like a container field, except there is an upload input if the resource is empty, and a delete button if it is non-empty.

listview
intended for use in list layouts, displays a small thumbnail or icon, with the filename to the right of it. All editing controls and other info are hidden. List view uses a default width and height of 64, but you can specify other dimensions by specifying your own width/height in the URL.
image_only
hides everything except the image or file icon.
showdelete
shows the delete button, which is not displayed by default. Note that the 'delete' context menu and DELETE key action are enabled by default.
nodelete
hides/disables the delete button, delete context menu, and DELETE key action.
upload
always show the upload button (even if the resource is non-empty).
noupload
never show the upload button (you can still upload a file by dragging or right-clicking).
readonly
hides the delete and upload buttons.
nopreview
hides the image or icon.
info
displays a table containing the filename, filesize, and date uploaded. This causes the title to be hidden, since that is included in the table.
title
always display the title, for both images and icons (by default, the title is hidden for images)
notitle
always hide the title
nolink
disable the hyperlink for the document. Clicking on a thumbnail or document will not do anything.
noapplet
Disables the applet view in SuperContainer 2. This will make SuperContainer work more like version 1.
applet
Enables the applet view in SuperContainer 2
noscroll
Hides scroll bars. Sometimes this is necessary when using very small (50px) web viewers, which display scroll bars even though the image would fit within the dimensions of the web viewer.
Alignment Styles (only applies with noapplet style)
left
aligns image, title, and controls to the left
right
aligns image, title, and controls to the right. There is no horizontal style to align to the center because that is the default.
center
aligns content in the center of the web viewer.
bottom
aligns content at the bottom of the web viewer. There is no 'top' style because that is the default.
Title Font Styles (only applies with noapplet style)
small, x-small, xx-small, large, x-large, xx-large
sets the title size
bold
bolds the title
italic
italicizes the title
smallcaps
displays the title in smallcaps

See the SuperContainer Example file for a demonstration of how setting different style parameters can affect the appearance of SuperContainer.

"background-color" URL parameter

Specify a "background-color" url parameter to set the background color of the BODY. This can be handy if you're using SuperContainer on a colored background, and want unused space to blend in. Note: this is not a style parameter, but its own separate URL parameter. So you might have a URL that looks like this (with a background color of rgb(10,20,30)):

http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=rgb(10,10,255)

The background-color value can be a color name (green), rgb value (rgb(10,10,255)), or hex value (#336699). Note that for hex values, you'll need to escape the "#" symbol with a %23 in the URL.

http://localhost:8020/SuperContainer/Files/asdf?style=bold&width=123&background-color=%23336699

Download only URL

downloadonly
when used with a RawData URL it will trigger a download of the file or thumbnail if the heigh or width are specified

Example:

http://sc.360works.com/SuperContainer/RawData/pro/360/image?downloadonly

Customizing SuperContainer Behavior

To disable opening a SuperContainer file in a new browser window, uncheck the Allow interaction with web viewer content checkbox in FileMaker for the Web Viewer component. You can then assign a button action to the web viewer to trigger a script when the web viewer is clicked.

Self Signed SSL support

selfsignedssl URL parameter will allow SuperContainer applet to interact with SuperContainer server which is accessed via a self signed SSL certificate. By default Java applets only support fully valid SSL certificates. Example:

https://localhost/SuperContainer/Files/asdf?selfsignedssl


File Storage

Default locations for SuperContainer

Mac OS X and Mac OS X Server

/Users/Shared/SuperContainer

Windows 7

C:\Users\<username>\Documents\SuperContainer\Files

Note: On some systems the "Documents" folder will be shown to the user as "My Documents"

Windows XP and Windows Server 2003

C:\Documents and Settings\SuperContainer\Files

Windows Vista, when running in Standalone mode

C:\Users\<username>\SuperContainer\Files

Windows Vista or later, when running with Tomcat or FileMaker Server

C:\Users\SuperContainer\Files

To configure a custom location

Standalone: use the Option panel to specify a custom path.

Tomcat or FMS deployment: use the web.xml file to specify a custom path. Use a text editor to open the file and modify it

Note: OS folder permissions do not usually allow for the web.xml file to be modified directly by a text editor. We recommend you move this file to your desktop and modify it there. Once you are finished move the web.xml file back to it's original location.

Click here for instructions on how to modify the web.xml file

web.xml Locations

**Note**: If you did a manual installation of SuperContainer, the web.xml file will be found at INSTALLATION_PATH/SuperContainer/WEB_INF/web.xml. The following paths are for when the installer was used to install SuperContainer

Mac FMS deployment

FileMaker 11:

/Library/FileMaker Server/Web Publishing/publishing-engine/cwpe-tomcat/bin/SuperContainer/WEB-INF/web.xml

FileMaker 12:

/Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/SuperContainer/WEB-INF/web.xml

FileMaker 13 / SuperContainer 2.899 and earlier:

/Library/FileMaker Server/Web Publishing/publishing-engine/jwpc-tomcat/SuperContainer/WEB-INF/web.xml

FileMaker 14+ / SuperContainer 2.9 and later:

/Library/360Works/Applications/webapps/SuperContainer/WEB-INF/web.xml

Mac Tomcat deployment

TOMCAT_HOME/webapps/SuperContainer/WEB-INF/web.xml

Windows FMS deployment

FileMaker 11:

C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\cwpe-tomcat\bin\SuperContainer\WEB-INF\web.xml

FileMaker 12:

C:\Program Files\FileMaker\FIleMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\bin\SuperContainer\WEB-INF\web.xml

FileMaker 13 / SuperContainer 2.899 and prior:

C:\Program Files\FileMaker\FileMaker Server\Web Publishing\publishing-engine\jwpc-tomcat\SuperContainer\WEB-INF\web.xml

FileMaker 14+ / SuperContainer 2.9 and later:

C:\Program Files\360Works\Applications\webapps\SuperContainer\WEB-INF

Windows Tomcat deployment

TOMCAT_HOME\webapps\SuperContainer\WEB-INF\web.xml

Note: When specifing a custom location make sure that SuperContaier will have read/write privileges to the parent folder, thumbnails directory will be created in the same folder as the custom location.

Note: C: represents the drive letter of the system drive.

Note: When changing the default location for Windows change the path for both "windowsFilesPath" and "vistaFilesPath"

Note: If a manual installation is done then the web.xml file will be in the WEB-INF in the SuperContainer folder in the INSTALLATION PATH

Note: If you are using a Mac, the SuperContainer installer will apply "No Access" privileges to the the SuperContainer folder and by extension the web.xml file. This is for security purposes You can safely modify the permissions on this file by "right-clicking" the web.xml file and selecting Get Info. At the bottom of the window, click the lock to authenticate. Once authenticated, change the Everyone permission to read/write. Once you have modified the web.xml file you can change this back to No Access.

Integrating with or migrating from other FileMaker databases

Importing legacy container data into SuperContainer

If you are migrating an existing FileMaker solution to use SuperContainer, you need a way to move your existing container fields over to SuperContainer. You can accomplish this by using the SuperContainer Companion Plugin. Simple write a script that loops through your records and call

SCSetContainer("Asset/" & Asset::ID ; Asset::OldContainerField) 

for each record you wish to move over. See the Companion Plugin documentation for more details, or watch a video demonstrating how to do this at http://www.360works.com/supercontainer/demos/set_container/

Importing SuperContainer resources from the file system

If you have a directory full of files you wish to add to SuperContainer, you can either copy them to the directory where SuperContainer stores its files, or use the companion plugin function SCScanDirectory to return a list of files in a directory. You can optionally set a flag to scan for files recursively. See the Companion Plugin documentation for more details.


Web publishing

Using IFRAME with PHP / XSLT

To include SuperContainer in your Custom Web Publishing site, just use a FRAME or an IFRAME with the same URL that you would use for your FileMaker Web Viewer.

Security

Security concepts in SuperContainer

There are several options available to protect the contents of SuperContainer. Here are some possibilities:

  • Use the built-in username and password feature in SuperContainer: This will require users to enter a username and password before they can access the contents of SuperContainer. The advantage of this approach is that it is very easy to configure. The disadvantage is that if a user can access one item, they can also access any other item that they know the URL for. Another disadvantage is that all users share the same username and password.
  • Use the username and password feature in Tomcat: Configuring this is beyond the scope of this document (see http://tomcat.apache.org for more information), but it basically works the same as the first option, with the addition of being able to configure separate usernames and passwords for each user.
  • Random URLs: This is probably the best approach to security, although it requires a little bit more programming work. Remember that nobody can access any document in SuperContainer unless they know the URL. By having each record include some random, hard-to-guess value, you can include that into the URL. Now each record can only be accessed if you, the FileMaker developer, choose to reveal the correct URL to them. As an example, change these URLs:
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/39
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/40

To these:

http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/rjx11mp/39
http://yourIpAddress:portNumber/SuperContainer/Files/Client1/Images/82crlqq/40

Now, malicious users cannot access unauthorized resources by simply incrementing the record ID.

Remember that you can combine these approaches as well - for example, using the built-in SuperContainer password with the random URL technique. Also see below for tips on SSL encryption.

Embedding username and password in SuperContainer URL

If you've specified a username and password that are required to access SuperContainer, you can include them in your Web Viewer URL like this:

http://username:password@yourServer:8080/SuperContainer/Files

Note: this behavior is not supported in new versions of Microsoft Internet Explorer. See [LN;834489 this article] for more information. If you are having trouble with IE, you can:

  • Enter the username and password (users should only need to do this once per session)
  • Tweak the registry as per the article mentioned above
  • Switch to a different browser
  • Add the username and password as additional key=value pairs to your Web Viewer URL like this:
http://yourServer:8080/SuperContainer/Files?username=yourUsername&password=yourPassword

Remember there should only be one question mark ("?") separating the URL from additional parameters. All other additional parameters should be separated by an ampersand ("&"). e.g., if your Web Viewer URL has a style parameter of "noscroll" and you want to add the username and password parameters as key=value pairs, the URL might look like this:

http://yourServer:8080/SuperContainer/Files?style=noscroll&username=yourUsername&password=yourPassword

Security issue with loading plugin in IWP

The demo file that comes with SuperContainer disables many of the plugin functions when they are being accessed through Instant Web Publishing. For an explanation, read the Security issues with Web Publishing article.


360Works Plugins for FileMaker