Dépôt de fichiers distants

Adobe AIR 2 et ultérieur

La classe URLFilePromise permet de créer des objets de fichiers promis représentant les fichiers ou données disponibles à partir d’une URL. Ajoutez un ou plusieurs objets de fichiers promis au Presse-papiers en faisant appel au format de Presse-papiers FILE_PROMISE_LIST . Dans l’exemple suivant, un fichier unique, disponible à l’adresse http://www.example.com/foo.txt, est téléchargé et enregistré à l’emplacement de dépôt sous le nom bar.txt. (Le nom du fichier distant et celui du fichier local ne sont pas nécessairement identiques.)

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 ); 
}

Vous pouvez autoriser l’utilisateur à faire glisser simultanément plusieurs fichiers en ajoutant d’autres objets de fichiers promis au tableau affecté au Presse-papiers. Vous pouvez également définir des sous-répertoires dans la propriété relativePath de sorte que certains ou la totalité des fichiers concernés par l’opération soient placés dans un sous-répertoire relatif à l’emplacement du dépôt.

L’exemple suivant illustre la procédure de lancement d’une opération de dépôt qui inclut plusieurs fichiers promis. Dans cet exemple, une page html, article.html , est placée dans le Presse-papiers en tant que fichier promis, accompagnée des deux fichiers d’images liés correspondants. Les images sont copiées dans un sous-dossier images afin de conserver les liens relatifs.

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 ); 
}