Colocación de archivos remotos

Adobe AIR 2 y posterior

Utilice la clase URLFilePromise para crear objetos de promesa de archivo que representen archivos o datos disponibles en una URL. Añada uno o varios objetos de promesa de archivo al portapapeles utilizando el formato del portapapeles FILE_PROMISE_LIST . En el siguiente ejemplo, un solo archivo, disponible en http://www.example.com/foo.txt, se descarga y se guarda en la ubicación de destino como bar.txt. (Los nombres de archivo local y remoto no tienen que coincidir.)

if( Clipboard.supportsFilePromise ) 
{ 
    var filePromise:URLFilePromise = new URLFilePromise(); 
    filePromise.request = new URLRequest("http://example.com/foo.txt"); 
    filePromise.relativePath = "bar.txt"; 
 
    var fileList:Array = new Array( filePromise ); 
    var clipboard:Clipboard = new Clipboard(); 
    clipboard.setData( ClipboardFormats.FILE_PROMISE_LIST_FORMAT, fileList ); 
    NativeDragManager.doDrag( dragSource, clipboard ); 
}

Se puede permitir al usuario que arrastre varios archivos a la vez añadiendo más objetos de promesa de archivo al conjunto asignado al portapapeles. También se pueden especificar subdirectorios en la propiedad relativePath de modo que algunos o todos los archivos incluidos en la operación se coloquen en una subcarpeta relativa a la ubicación de destino.

En el siguiente ejemplo se muestra cómo iniciar una operación de arrastrar que incluye varias promesas de archivo. En este ejemplo, una página html, article.html , se sitúa en el portapapeles como promesa de archivo, junto con sus dos archivos de imagen vinculados. Las imágenes se copian en una subcarpeta images de modo que se mantengan los vínculos relativos.

if( Clipboard.supportsFilePromise ) 
{     //Create the promise objects 
    var filePromise:URLFilePromise = new URLFilePromise(); 
    filePromise.request = new URLRequest("http://example.com/article.html"); 
    filePromise.relativePath = "article.html"; 
 
    var image1Promise:URLFilePromise = new URLFilePromise(); 
    image1Promise.request = new URLRequest("http://example.com/images/img_1.jpg"); 
    image1Promise.relativePath = "images/img_1.html"; 
    var image2Promise:URLFilePromise = new URLFilePromise(); 
    image2Promise.request = new URLRequest("http://example.com/images/img_2.jpg"); 
    image2Promise.relativePath = "images/img_2.jpg"; 
     
 
    //Put the promise objects onto the clipboard inside an array 
    var fileList:Array = new Array( filePromise, image1Promise, image2Promise ); 
    var clipboard:Clipboard = new Clipboard(); 
    clipboard.setData( ClipboardFormats.FILE_PROMISE_LIST_FORMAT, fileList ); 
    //Start the drag operation 
    NativeDragManager.doDrag( dragSource, clipboard ); 
}