Using Host and Upload Domains that Differ from One Another

Supported technologies: Adobe Flash
Important

This article is applicable to Flash Uploader only. For similar information about the HTML5 Uploader see the Enabling Cross-Origin Resource Sharing for HTML5 Uploader topic.

Usually Adobe Flash Player does not allow an swf application to access data that resides outside a domain where the application is hosted. It means that you usually cannot host Flash Uploader on one domain and upload files to another. However, you can manage this task by implementing cross-domain policy for Flash applications.

To allow Flash Uploader to upload files to some target server you should create the cross-domain policy file, named crossdomain.xml, and place it to the root folder of the target server.

Suppose, Flash Uploader is hosted in a server1.com server, whereas it requires to upload files to a server2.com server. In this case files should be placed as follows:

URL
the Flash control http://server1.com/Scripts/aurigma.imageuploaderflash.swf
a page where Flash Uploader is hosted http://server1.com/default.html
the cross-domain policy file http://server2.com/crossdomain.xml
an upload script; aimed to save files and/or get additional data http://server2.com/upload.aspx

The cross-domain policy file have to be like in the snippet below:

XML
<cross-domain-policy>
   <site-control permitted-cross-domain-policies="all"/>
   <allow-access-from domain="server1.com" to-ports="*"/>
   <allow-http-request-headers-from domain="server1.com" headers="*"/>
</cross-domain-policy>

And Flash Uploader should be configured like follows:

ASP.NET
<aur:ImageUploaderFlash ID="Uploader1" runat="server" 
   LicenseKey="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX;YYYYY-YYYYY-YYYYY-YYYYY-YYYYY-YYYYYY">
   <UploadSettings ActionUrl="http://server2.com/upload.aspx" />
</aur:ImageUploaderFlash>
PHP
<?php
   $uploader = new ImageUploaderFlash("Uploader1");
   $uploader->setLicenseKey("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX;YYYYY-YYYYY-YYYYY-YYYYY-YYYYY-YYYYYY");
   $uploader->getUploadSettings()->setActionUrl("http://server2.com/upload.php");
   $uploader->render();
?>
JavaScript
 var fu = $au.imageUploaderFlash({
	id: 'Uploader1',
	licenseKey: "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX-XXXXXX;YYYYY-YYYYY-YYYYY-YYYYY-YYYYY-YYYYYY",
	uploadSettings: { actionUrl:"http://server2.com/upload.asp" }
});
fu.writeHtml();
Note

Pay attention that you will need a license key for the target domain too! So, you will need to register two license keys: the first one for the domain where Flash Uploader is hosted, and the second one for the domain where files are uploaded to. See the Registering HTML5/Flash Uploader topic for more information.

See Also

Reference

Manual

Other Resources