Structuring the file upload and download
You can implement file upload/download functionality through interface contracts in the Web UI Framework and the Rich Client Platform. The upload/download implementations can be plugged in either through web.xml as context parameters or programmatically using exposed methods.
This enables you to do the following:
- Customize upload/download functionality in the same way that you can customize authorization, authentication, and other tasks.
- Implement upload/download functionality for applications that do not use the Sterling Application Platform.
These tasks use the following base classes which are present both in the Sterling Application Platform (the platform_afc.jar file) and in the base file attachment JAR file (platform_fa.jar) that is used when not using the Sterling Application Platform:
- The interfaces IFileUploadProvider and IFileDownloadProvider
- The abstract class PLTFileUploadProvider
- The servlets PLTFileUploadservlet and PLTFileDownloadServlet
Default file upload/download implementations
The following graphic shows the default implementation of upload/download functionality in applications based on the Sterling Application Platform but which do not use the Web UI Framework (like the Rich Client Platform):
In the graphic, Platform and Platform_AFC refer to the Sterling Application Platform.

Default implementation classes are as follows:
- For upload - com.sterlingcommerce.woodstock.util.frame.file.impl.PLTFileUploadProviderImpl
- For download - com.sterlingcommerce.woodstock.util.frame.file.impl.PLTFileDownloadProviderImpl
The following graphic shows the default implementation of upload/download functionality in applications based on the Sterling Application Platform and use the Web UI Framework:
In the graphic, Platform and Platform_AFC refer to the Sterling Application Platform.

Default implementation classes are as follows:
- For upload - com.sterlingcommerce.ui.web.platform.file.SCUIFileUploadProviderImpl
- For download - com.sterlingcommerce.ui.web.platform.file.SCUIFileDownloadProviderImpl
Plugging in file upload/download implementations through web.xml
The following context parameters are used when plugging in file upload/download implementations through web.xml:
- For upload - sc-file-upload-provider
- For download - sc-file-download-provider
The value of the above mentioned context parameters should be a qualified Java™ class path which implements IFileUploadProvider and IFileDownloadProvider for upload and download, respectively.
Sample context parameters to be plugged in applications based on the Sterling Application Platform but which do not use the WUF (note the PLT prefix in the method name):
<context-param>
<param-name>sc-file-upload-provider</param-name>
<param-value>
com.sterlingcommerce.woodstock.util.frame.file.impl.PLTFileUploadProviderImpl
</param-value>
</context-param>
<context-param>
<param-name>sc-file-download-provider</param-name>
<param-value>
com.sterlingcommerce.woodstock.util.frame.file.impl.PLTFileDownloadProviderImpl
</param-value>
</context-param> <context-param>
<param-name>sc-file-upload-provider</param-name>
<param-value>
com.sterlingcommerce.ui.web.platform.file.SCUIFileUploadProviderImpl
</param-value>
</context-param>
<context-param>
<param-name>sc-file-download-provider</param-name>
<param-value>
com.sterlingcommerce.ui.web.platform.file.SCUIFileDownloadProviderImpl
</param-value>
</context-param>Plugging in file upload/download implementations programmatically using exposed methods
The methods setFileUploadProvider and setFileDownloadProvider are exposed in the PLTFileUploadDownloadHelper class to plug in file upload/download implementations programmatically using interface contracts.
PLTFileUploadDownloadHelper.setUploadProviderImpl(uploadImpl);
PLTFileUploadDownloadHelper.setDownloadProviderImpl(downloadImpl);Here, uploadImpl and downloadImpl are class objects which implement IFileUploadProvider and IFileDownloadProvider, respectively.