Upload con FileReference y variables por GET en Mac

Utilizando el  FileReference para subir un fichero al servidor desde un Mac nos puede pasar que en nuestro código as no se dispare algún eventos asociado al FileReference, es decir el onComplete, onProgress, etc. Para este problema encontré en multitud de foros la solución que es tan fácil como que la pagina php o asp devuelva algo, es decir, bastaría en el caso de php escribir echo(“hola caracola”) o si queremos ser un poco más elegantes echo(“transerencia=OK”).

En mi caso después de aplicar esta solución los eventos seguían sin dispararse por lo que seguí buscando por Internet sin encontrar nada que me ayudara. Más tarde empecé a hacer pruebas sobre mi código dando con la solución que os pongo a continuación y espero os ahorre el tiempo que yo invertí pegándome con ello.

Si sobre el archivo php que hace el upload le añadimos variables GET es decir algo del tipo:

var variables:String = "";
variables += "persona=" + refBase.empresa_int.text+"&";
variables += "telefono=" + refBase.telefono_int.text+"&";
variables += "email=" + refBase.email_int.text+"&";
variables += "mensaje=" + refBase.mensaje_txt.text+"&";
variables += "referencia=" + referencia;

archivoASubir.upload("../php/upload.php?" + variables);

estas variables deben ir parseadas con la función escape de as, es decir:

var variables:String = "";
variables += "persona=" + escape(refBase.empresa_int.text)+"&";
variables += "telefono=" + escape(refBase.telefono_int.text)+"&";
variables += "email=" + escape(refBase.email_int.text)+"&";
variables += "mensaje=" + escape(refBase.mensaje_txt.text)+"&";
variables += "referencia=" + escape(referencia);
archivoASubir.upload("../php/upload.php?" + variables);

fijaros bien que a lo único que se le aplica la función escape es al contenido de las variables, dejando fuera el signo ? y el &.