Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    F8 upload Flash/Php problema rename

    Slave a tutti, faccio un'upload con flash (con il solito flash.net.FileReference) , gestisco l'upload tramite php e fin qui tutto funge a meraviglia.
    il mio problema è che al momento dell'upload flash salva il nome del file originale (file.name)e, dopo l'upload e il rename in php, se ne frega che in php ho rinominato il file.
    ovviamente flash cerca un file da scaricare che non ha più lo stesso nome.
    come faccio a passare il nome del file rinominato in php a flash prima del download?
    questo è l'as filereference:
    codice:
    //Allow this domain
    System.security.allowDomain("http://localhost/");
    import flash.net.FileReference;
    // The listener object listens for FileReference events.
    var listener:Object = new Object();
    
    // When the user selects a file, the onSelect() method is called, and
    // passed a reference to the FileReference object.
    listener.onSelect = function(selectedFile:FileReference):Void {
      //clean statusArea and details area
      statusArea.text = details.text = ""
      // Flash is attempting to upload the image.
      statusArea.text += "Attempting to upload " + selectedFile.name + "\n";
      // Upload the file to the PHP script on the server.
      selectedFile.upload("upload.php");
    };
    
    // the file is starting to upload.
    listener.onOpen = function(selectedFile:FileReference):Void {
      statusArea.text += "Uploading " + selectedFile.name + "\n";
    };
    //Possible file upload errors
    listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
    	imagePane.contentPath = "error";
    	imagePane.content.errorMSG.text = "HTTPError number: "+httpError +"\nFile: "+ file.name;
    }
    
    listener.onIOError = function(file:FileReference):Void {
    	imagePane.contentPath = "error";
    	imagePane.content.errorMSG.text = "IOError: "+ file.name;
    }
    
    listener.onSecurityError = function(file:FileReference, errorString:String):Void {
    	imagePane.contentPath = "error";
    	imagePane.content.errorMSG.text = "SecurityError: "+SecurityError+"\nFile: "+ file.name;	
    }
    
    // the file has uploaded
    listener.onComplete = function(selectedFile:FileReference):Void {
      // Notify the user that Flash is starting to download the image.
      statusArea.text += "Upload finished.\nNow downloading " + selectedFile.name + " to player\n";
      //Show file details
      details.text = ""
      for(i in selectedFile) details.text +=""+i+": "+selectedFile[i]+"\n"
      // Call the custom downloadImage() function.
      downloadImage(selectedFile.name);
    };
    
    var imageFile:FileReference = new FileReference();
    imageFile.addListener(listener);
    
    uploadBtn.onPress = uploadImage;
    imagePane.addEventListener("complete", imageDownloaded);
    
    // Call the uploadImage() function, opens a file browser dialog.
    function uploadImage(event:Object):Void {
      imageFile.browse([{description: "Image Files", extension: "*.jpg;*.gif;*.png"}]);
    }
    
    // If the image does not download, the event object's total property
    // will equal -1. In that case, display am error message
    function imageDownloaded(event:Object):Void {
      if(event.total == -1) {
        imagePane.contentPath = "error";	
      }
    }
    
    // show uploaded image in scrollPane
    function downloadImage(file:Object):Void {
      imagePane.contentPath =  "./files/" + file;
       }
    stop();
    e questo è il file upload.php dove faccio l'upload ed il rename randomico del file caricato.

    Codice PHP:
    // funzione per creare un codice alfanumerico (spero) univoco 
    function makeRandomid() {
    $pass "";
      
    $salt "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
      
    srand((double)microtime()*1000000);
          
    $i 0;
          while (
    $i <= 7) {
                
    $num rand() % 33;
                
    $tmp substr($salt$num1);
                
    $pass $pass $tmp;
                
    $i++;
          }
          return 
    $pass;
    }

    $nome $_FILES['Filedata']['name'];
    $info pathinfo($nome); 
    $ext $info['extension'];
    $codice makeRandomid();
    $nuovonome "$codice.".$ext;
    // faccio l'upload e rinomino con il nuovo nome.
    move_uploaded_file($_FILES['Filedata']['tmp_name'], "./files/".$nuovonome);
    chmod("./files/".$nuovonome0777); 
    sicuramente bisognerà modificare il riferimento del nome del file in flash...
    ma non saprei proprio dove... fatto un po di prove ma nisba..
    mi sapreste aiutare?
    thanks.

  2. #2
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    per favore ditemi che esiste una soluzione... mi ricordo che qualcuno ha avuto il mio stesso problema ma non trovo più il post... help!!

  3. #3

    Re: F8 upload Flash/Php problema rename

    Originariamente inviato da Base
    sicuramente bisognerà modificare il riferimento del nome del file in flash...
    cioè ?

    upload e download devono essere due cose completamente separate.

    Se in upload fai tutti quei giri per cambiare nome, senza motivo apparente, basterebbe un md5file per risolvere tutto, in download devi prima leggere la lista dei files in quella cartella, comunicarli a Flash, e poi farli scaricare.

    Ma c'è qualcosa di contorto in questo insieme di operazioni che fai, quindi non è semplice aiutarti ....


    P.S. no richieste tecniche in PVT, grazie
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  4. #4
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822

    Re: Re: F8 upload Flash/Php problema rename

    Originariamente inviato da andr3a
    cioè ?

    upload e download devono essere due cose completamente separate.

    Se in upload fai tutti quei giri per cambiare nome, senza motivo apparente, basterebbe un md5file per risolvere tutto, in download devi prima leggere la lista dei files in quella cartella, comunicarli a Flash, e poi farli scaricare.

    Ma c'è qualcosa di contorto in questo insieme di operazioni che fai, quindi non è semplice aiutarti ....


    P.S. no richieste tecniche in PVT, grazie
    Innanzi tutto grazie della risposta e scusa del pvt.

    cosa c'è di contorto....?

    Allora, è possibile uploadare una sola immagine, in pratica sto creando una cartolina dove scegli lo sfondo, scegli il personaggio, e poi fai l'upload di una tua foto per personalizzare la testa del personaggio...
    tutti gli upload vengono fatti in una sotto cartella che si chiama /files/
    quando faccio clic sul bottone carica immagine, lo script di flash gestisce l'up e il down del file servendosi di upload.php, una volta caricata l'immagine è possibile ruotare resizare e spedire la cartolina, in quel momento invio tutti i dati al db ecc.
    (questo era per spiegarti che tipo di lavoro sto facendo)
    il problema è che il browse file lo fa flash, e penso che in quel momento (quando seleziono dal pc locale il file da uploadare) flash si salvi in nome del file.
    quando faccio l'upload RINOMINO il file (ci sono 6mila modi di creare una stringa abbastanza univoca, io ho usato quella) dal momento che lo rinomino, flash non sa più come si chiama, non fa il download del file e di conseguenza non si vede l'immagine.

    devo cambiare metodo?
    cioè sono etrato in un tunnel senza via di fuga?
    mi sembra solo strano che per far uploadare un file in una cartella dai visitatori di un sito, nessuno abbia mai avuto il problema che se per sbaglio qualcuno fa l'upload di un file con un nome già esistente venga sovrascritto. io devo ovviare questo problema rinominare, e salvare il nome del file nel record del db, in questo caso posso poi risalire al vero proprietario del file e fare svariate cose.

    io in pratica ho già fatto tutto il lavoro, mi manca solo questo tassello, rinominare il file in modo univoco (da flash o da php) e poterlo gestire...

    sembra che tu sia l'unico che mi possa aiutare... Thanks ancora

  5. #5
    Utente di HTML.it L'avatar di Base
    Registrato dal
    Apr 2001
    Messaggi
    822
    ragazzi...ho un disperato bisogno di aiuto ... UP disperato... sono disposto anche a cambiare completamente gli script.. anche linguaggio server.. non so più che fare..

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.