Ablegen von Remote-Dateien

Adobe AIR 2 und höher

Verwenden Sie die URLFilePromise-Klasse zum Erstellen von Dateizusagenobjekten für Dateien oder Daten, die an einer URL zur Verfügung stehen. Fügen Sie der Zwischenablage mit dem Zwischenablageformat FILE_PROMISE_LIST mindestens ein Dateizusagenobjekt hinzu. Im folgenden Beispiel wird eine einzelne Datei, die unter http://www.example.com/foo.txt zur Verfügung steht, heruntergeladen und als „bar.txt“ am Ablageort gespeichert. (Die Name der Remote-Datei muss nicht mit dem Namen der lokalen Datei übereinstimmen.)

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

Sie können dem Anwender die Möglichkeit geben, mehrere Dateien gleichzeitig zu ziehen; dazu fügen Sie dem Array, das der Zwischenablage zugewiesen ist, mehrere Dateizusagenobjekte hinzu. Außerdem können Sie für die relativePath -Eigenschaft Unterverzeichnisse angeben, damit einige oder alle Dateien in einem Unterordner relativ zum Ablageort platziert werden.

Im folgenden Beispiel wird gezeigt, wie eine Ziehoperation mit mehreren Dateizusagen eingeleitet wird. In diesem Beispiel wird die HTML-Seite article.html zusammen mit ihren beiden verknüpften Bilddateien als Dateizusage in die Zwischenablage platziert. Die Bilder werden in den Unterordner images kopiert, sodass die relativen Hyperlinks beibehalten werden.

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