You can pass secure documents to LiveCycle when
invoking a process that requires one or more documents. By passing
a secure document, you are protecting business information and confidential
documents. In this situation, a document can refer to a PDF document,
an XML document, a Word document, and so on. Passing a secure document
to LiveCycle from a client application written in Flex is
required when LiveCycle is configured to allow secure documents.
(See Configuring LiveCycle to accept secure and unsecure documents.)
When passing a secure document, use single sign-on and specify
a LiveCycle user who has the Document Upload Application User role.
Without this role, the user cannot upload a secure document. You
can programmatically assign a role to a user. (See Managing Roles and Permissions.)
Note: When you create a new role and you want members
of that role to upload secure documents, ensure that you specify
the Document Upload permission.
LiveCycle supports an operation named getFileUploadToken that
returns a token that is passed to the upload servlet. The DocumentReference.constructRequestForUpload method
requires a URL to LiveCycle along with the token returned
by the LC.FileUploadAuthenticator.getFileUploadToken method.
This method returns a URLRequest object that is
used in the invocation to the upload servlet. The following code
demonstrates this application logic.
...
private function startUpload():void
{
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener("uploadCompleteData", completeHandler);
try
{
var success:Boolean = fileRef.browse();
}
catch (error:Error)
{
trace("Unable to browse for files.");
}
}
private function selectHandler(event:Event):void
{
var authTokenService:RemoteObject = new RemoteObject("LC.FileUploadAuthenticator");
authTokenService.addEventListener("result", authTokenReceived);
authTokenService.channelSet = cs;
authTokenService.getFileUploadToken();
}
private function authTokenReceived(event:ResultEvent):void
{
var token:String = event.result as String;
var request:URLRequest = DocumentReference.constructRequestForUpload("http://localhost:8080", token);
try
{
fileRef.upload(request);
}
catch (error:Error)
{
trace("Unable to upload file.");
}
}
private function completeHandler(event:DataEvent):void
{
var params:Object = new Object();
var docRef:DocumentReference = new DocumentReference();
docRef.url = event.data as String;
docRef.referenceType = DocumentReference.REF_TYPE_URL;
}
...
)