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