Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: AS2 e File Reference

  1. #1
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117

    AS2 e File Reference

    Ciao ragazzi...ho trovato molti esempi in giro sull'uso dei Files Reference per effettuare l'upload di immagini con Flash+PHP però non ne ho capito nemmeno uno...

    Il fatto è che a me serve adattare il metodo al mio progetto e non essendo riuscita a comprendere a pieno il codice non ci son riuscita!

    In particolare non riesco a distinguere le righe di codice che si occupando dello "sfoglia files" sull'Hardisk da quelle che si occupano dell'upload vero e proprio (visto che negli esempi trovati tutti effettuano automaticamente l'upload subito dopo la selezione del file cosa che invece io non voglio fare)

    C'è qualche anima pia che riesce a spiegarmi un po' sta cosa?!?

    Se volete ho anche una cospiqua porzione di codice (testato e funzionante) ma dove appunto non riesco a distinguere cosa serve a cosa...

    Grazie a tutti

  2. #2
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    dai vi do un piccolo input!

    Questo è il codice che esegue TUTTO alla pressione del bottone Sfoglia:
    Codice PHP:
    // Per utilizzare la classe di upload dobbiamo richiamarla in questo modo:
    import flash.net.FileReference;

    // Listener ( Oggetto ) con tutti i metodi per gestire upload
    // ed eventuali errori.
    var listener:Object = new Object();
    // File di gestione Upload lato server
    listener.serverfile 'http://127.0.0.1/provaUP/upload.php';
    // Semplificazione personale, traccia degli errori con descrizione
    listener.onError = function(file:FileReferenceerrorString:String) {
        
    trace("Error with: " file.name "\nType: " errorString);
    }
    // Metodi ufficiali per gestione errori
    listener.onHTTPError =
    listener.onIOError =
    listener.onSecurityError = function(file:FileReferenceerrorString:String):Void {
        
    // Tranne onSecurityError gli altri metodi non passano il parametro
        // errorString alla funzione, quindi se non e' definito ...
        
    if(errorString == undefined// inviamo una descrizione generica
            
    errorString "HTTP or Input Output Error";
        
    this.onError(fileerrorString);

    // Metodo ufficiale richiamato quando si clicka annulla
    // sulla finestra di scelta files
    listener.onCancel = function(file:FileReference):Void {
        
    // Il file non viene selezionato
        
    trace("Hai premuto Cancel");
    }
    // Metodo richiamato quando il file viene selezionato
    listener.onSelect = function(file:FileReference):Void {
        
    /** Proprieta' della variabile file
         *            name                stringa, nome del file scelto
         *            creator                stringa, nome dell' utente che l' ha creato
         *                                (in windows mi sa che non andra' mai)
         *            creationDate        data, data di creazione del file
         *            modificationDate    data, ultima modifica fatta al file
         *            size                integer, dimensione in byte
         *            type                stringa, tipo file (o semplicemente l' estensione)
         */
       
        // Tracciamo il metodo di selezione e il nome file
        
    trace("onSelect: " file.name);
       
        
    // In questo metodo iniziamo a gestire l' upload
        // Il primo metodo richiamato sara' onOpen
        
    if(!file.upload(this.serverfile))
            
    trace("Upload dialog failed to open.");
    }
    // Metodo ufficiale chiamato ad inizio upload (o download)
    listener.onOpen = function(file:FileReference):Void {
        
    trace("onOpen: " file.name);
    }
    // Metodo ufficiale chiamato dopo onOpen ad upload / download cominciato
    listener.onProgress = function(file:FileReferencebytesLoaded:NumberbytesTotal:Number):Void {
        
    // consiglio floor, poiche' finche' il floor non sara' 100
        // non verra' chiamato il metodo onComplete e se usate ceil o round
        // il 100 arrivera' prima dell' effettivo 100 ... ovvero prima che
        // effettivamente e' stato uploadato tutto ... ergo inutile ... secondo me
        
    var p:Number = new Number(Math.floor(bytesLoaded bytesTotal 100));
        
    trace("onProgress: " String(p) + "%");
    }
    // Metodo ufficiale chiamato ad upload / download terminato.
    // Il file sul server avra' gia' elaborato quando questo
    // metodo verra' richiamato.
    listener.onComplete = function(file:FileReference):Void {
        
    trace("onComplete: " file.name);
    }

    // Array per specificare il tipo di dati da visualizzare per l' upload
    // L' array dovra' essere fatto da tanti oggetti quanti sono i
    // tipi differenti di files da voler far uploadare.
    // Ogni oggetto dovra' contenere 2 elementi di tipo stringa:
    //        description (descrizione del tipo di file)
    //        extension (estensioni valide per quel tipo di file separate da ; )
    var filetype:Array = [
        
    // Esempio alcuni tipi di immagini
        
    {description "Images (*.jpg, *.jpeg, *.gif, *.png)",
         
    extension "*.jpg; *.jpeg; *.gif; *.png"},
        
    // Esempio files di testo
        
    {description "Text Files (*.txt, *.rtf)",
         
    extension "*.txt; *.rtf"},
        
    // Esempio specifico di un unico file
        
    {description "Specific File (test.swf)",
         
    extension "test.swf"},
        
    // Esempio tutti i files
        
    {description "All Files (*.*)",
         
    extension "*.*"}
    ]

    // Inizializzazione della classe per l' upload (o download)
    // ed assegnazione listener dedicato
    var fileRef:FileReference = new FileReference();
    fileRef.addListener(listener);

    // comando da usare quando vogliamo sfruttare l' upload
    sfoglia.onPress=function(){
    fileRef.browse(filetype);

    io invece vorrei che premendo sfoglia si sfogliasse e premendo un altro bottone (esempio mioUp) si uploadasse

    Si può fare?

  3. #3
    beh x fare la selezione ( sfoglia ) si usa il metodo browse di filereference
    fileRef.browse(filetype);
    e poi con questo avvii l'upload

    // Inizializzazione della classe per l' upload (o download)
    // ed assegnazione listener dedicato
    var fileRef:FileReference = new FileReference();
    fileRef.addListener(listener);


    quindi ti basterebbe dividere i compiti anche se nn ho provato...
    la verità non è una meretrice che si getta al collo di chi non la vuole ma anzi essa è dotata di una così altera bellezza che anche chi sacrifica tutto per ottenerla non è sicuro di averla raggiunta !

  4. #4
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    nn ho capito un piffero!

  5. #5
    Verò, mi avevi detto che lo sapevi fare!

    Cmq, basta ke all'evento onSelect metti:

    pulsanteup.onRelease = function()
    {
    file.upload(listener.serverfile);
    }

    al posto di:

    if(!file.upload(this.serverfile))
    trace("Upload dialog failed to open.");


  6. #6
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    ok come dice StefanoV funziona solo che ho un problemino...

    non posso mettere le action per il bottone sul frame perchè per lo stesso bottone ho una miriade di action aggiuntive che nn so se son in grado di mettere sul frame...

    dovendo metter le actions sui 2 bottoni, come potrei fare ad avere un bottone sfoglia e uno upload?!? :master:

  7. #7
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    lo fai alla stessa maniera, solo che probabilmente devi scrivere un percorso diverso per la variabile "fileRef" dentro al pulsante, in generale dovresti salvarti facendo _root.fileRef

  8. #8
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    okok! Son riuscita a infilare tutto nel frame

    Volevo solo chiedervi 2 cose e poi forse ho risolto sto inghippo...

    1. Se io lancio l'upload e poi sposto il filmato con un goto su un altro frame prima che l'upload sia finito me lo annulla? Perchè dai test fatti a me pare proprio di si...in tal caso dove sta in quel marasma di codice l'evento del completamento dell'upload?

    2. Come mai il codice che ho postato a inizio discussione non contiene errori (secondo il check di flash) ma non riesce a riordinarmelo con l'apposito tasto del pannello AS dicendomi che la sintassi nn è corretta?!?

    Grazie ancora gente

  9. #9
    Per la Domanda Numero 1:
    Prova a Prolungare il livello dove hai il codice dell'uploader sui fotogrammi che andrai a scorrere... altrimenti fai un movieclip con l'animazione e lo piazzi sopra...

    La Domanda 2 non l'ho capita...

    PS: Tu che mi Chiami StefanoV? Ciao Verò!

  10. #10
    Utente di HTML.it L'avatar di Veronica80
    Registrato dal
    May 2006
    Messaggi
    2,117
    ok ok per la prima domanda alla fine ho risolto.

    per la seconda ci pensiamo un'altra volta...ho un problema + serio! xD

    Ora in locale funziona tutto, sul server Apache che ho sul mio pc fa l'upload finalmente con tanto di preloader...

    ma se metto tutto online...nn funziona +....ho un server Linux su Aruba....ditemi che supporta sta cosa! xD

    Grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.