Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    curiosità su SWFupload: come funziona?

    Ciao a tutti e perdonatemi eventuali banalità (non sono molto ferrato in AS).
    Vorrei realizzare una sorta di SWFupload "casalingo", anche a scopo formativo. Dunque ho due domande:

    1) è realizzabile solamente con AS > 2, a causa della necessità di leggere il filesystem locale?
    2) flash viene in aiuto solo per il suo pannello di selezione multipla (con il tasto ctrl, per intenderci), mentre tutto il resto è delegato allo script su server?

    Vi ringrazio in anticipo per le illuminazioni che saprete darmi!

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    1) No la classe FileReference (e FileReferenceList per upload multiplo) può essere usata anche con AS1 ma funziona solo a partire dal Flash Player 8, perciò se l'utente non avesse il almeno il player 8 installato nel suo sistema, non potrebbe usufruire del servizio.

    2) Praticamente sì, l'actionscript per questa cosa è molto semplice e ci sono parecchi esempi su internet al riguardo. C'è comunque una cosa interessante, ossia la possibilità di monitorare il progresso di upload, dando quindi modo di crearsi una barra di progresso che inganna l'attesa dell'utente.

  3. #3
    Ciao e grazie mille per le risposte, mi metto al lavoro e vediamo cosa riesco a cacciare fuori
    Una sola puntualizzazione: se le barre di upload sono di flash, ciò significa che è flash stesso a mandare sul server i file, dico bene? Tanto che poi mi ritroverò i famosi array $_FILES da gestire (riferendomi naturalmente a php)...

  4. #4
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    Sì certo, in pratica lo script di flash rimane in ascolto per tutta la durata del caricamento scambiandosi informazioni con lo script php (io uso quello, ma penso che non sia diverso per altri linguaggi lato server) fino al termine dell'upload, gestendo tutti gli eventi dall'inizio alla fine del percorso.

  5. #5
    Perfetto, credo di essere al 99% della soluzione.

    codice:
    private function uploader(event:Event):void {
    	var fileReference:FileReference;
    	var fileList:Array = fileRefList.fileList;
    	output.text = "sono stati selezionati " + fileList.length + " file\n";
    		
    	for( var i:uint = 0; i < fileList.length; i++ ) {
    		fileReference = fileList[i];
    		fileReference.addEventListener(Event.OPEN, startUploader);	
    		fileReference.addEventListener(ProgressEvent.PROGRESS, progressHandler);
    		fileReference.addEventListener(Event.COMPLETE, finalUploader);	
    		fileReference.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, serverEcho);
    		try 				{ fileReference.upload(urlRequest); }
    		catch( error:Error) { output.text += " errore di upload!"; }
    	}	
    }
    questa funzione è il cuore dell'upload: per ogni file selezionato esegue il codice che c'è nel ciclo for e quando scatta un evento chiama alcune funzioni, il cui unico scopo è scrivere due info in un <mx:Text>.
    Problema: in questo modo le informazioni vengono stampate in blocco, al termine di TUTTI gli upload! E' possibile applicare una sorta di "flush" in modo tale che i messaggi compaiano in sequenza?

    Aggiungo di aver ottenuto gli stessi risultati sia in localhost che su server reale, con flash player 10 per linux.

  6. #6
    Soluzione per chi fosse interessato: si legge che il flash player di linux (v. 10.xx) è buggato soprattutto per la gestione dell'upload. Testando altri swf in rete noto infatti che le barre di caricamento non sono "fluide", il loro stato si aggiorna solo al termine dell'operazione. Stessi swf testati con il player v.10.xx di Explorer non hanno presentato il problema.
    Speriamo risolvano

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.