Following function gives an example of how to doanload a file in Flex.
"file" object passed to the function is a simple object having following structure:
"file" object passed to the function is a simple object having following structure:
file.fileName = "Abc.png" file.fileType = "image/png" file.url = "/documents/Abc.png"A pattern match-replacement is used to determine file extension, in case fileName does not have it.
- public function downloadFile(file:Object):void
- {
- if (file != null)
- {
- var fileName:String = (file.fileName != null && file.fileName.length > 0) ? file.fileName : (new Date()).time.toString();
- var fileExtension:String = file.fileExtension;
- if (fileName.indexOf(".") < 0)
- {
- if (fileExtension.lastIndexOf(".") >= 0)
- fileExtension = fileExtension.slice(fileExtension.lastIndexOf("."), fileExtension.length);
- else if (fileExtension.lastIndexOf("/") >= 0)
- fileExtension = "." + fileExtension.slice(fileExtension.lastIndexOf("/"), fileExtension.length);
- else
- fileExtension = "." + fileExtension;
- // Replace characters not supported by download. / \ : * ? " < > | % with _
- var pattern:RegExp = /([\/\\:\*\?\"\<\>\|\%])/g;
- fileName += fileExtension.replace(pattern, "_");
- }
- var urlRequest:URLRequest = new URLRequest(file.url);
- var fileRef:FileReference = new FileReference();
- fileRef.addEventListener(IOErrorEvent.IO_ERROR, fileDownloadError);
- fileRef.download(urlRequest, fileName);
- }
- function fileDownloadError(event:IOErrorEvent):void
- {
- Alert.show("Error encountered while downloding the file:\n." + event.text, "Error");
- }
- }
Comments