Pagina 1 van 2 12 LaatsteLaatste
Weergegeven resultaten: 1 t/m 10 van 11
  1. #1
    Gevorderd   Trax's schermafbeelding
    Geregistreerd
    1 June 2005
    Berichten
    324
    Bedankjes
    3
    Bedankt
    32 keer in 25 posts

    Geüploadde foto met Flash hernoemen mbv php

    Hey,

    ik upload een foto via Flash mbv php. Nu dat lukt goed, ik wil alleen dat die foto hernoemd wordt naar de naam van de persoon die men invult in het naam_txt veld.

    Ik weet dat ik deze variabele moet verzenden naar het php bestand met loadvars , maar dan zit ik vast. Ik weet niet hoe ik dit moet combineren met het bestaande php upload script.

    Ik ben een absolute leek op php gebied, dus neem me mijn gepruts en/of stomme vragen aub niet kwalijk.

    Kan iemand mij helpen?

    Dit is mijn AS:

    Code:
    import flash.net.FileReference;
    info.html = true;//textveld html enabelen
    
    scaleMode = noScale;
    
    
    var bestandTypes:Array = new Array();
    
    var imageTypes:Object = new Object();
    imageTypes.description = "Images (*.jpg)";
    imageTypes.extension = "*.jpg;";
    bestandTypes.push(imageTypes);
    
    //class aanspreken
    var fileRef:FileReference = new FileReference();
    
    //de blader knop
    selecteerBestand.onRelease = function() {
        fileRef.browse(bestandTypes);
    };
    
    //upload knop en upload progres balk onzichtbaar maken
    uploadKnop._visible = false;
    progresBalk.balk._visible = false;
    progresBalk.balk._xscale = 0;
    
    
    /////////////////////twijfel////////////////////
    var send_varnaam:LoadVars = new LoadVars();
    function sendNaam(){
        
        send_varnaam.nieuwenaam = naam_txt.text;
        send_varnaam.sendAndLoad("upload.php", "POST");
    }
    /////////////////////twijfel////////////////////
    
    
    //een listener aanmaken waarmee we allerlei gegevens kunnen opvragen
    var listener:Object = new Object();
    
    listener.onSelect = function(file:FileReference) {
        //bestand is te groot
        if (file.size>3145728) {
            //3145728 bytes is 3 MB
            info.htmlText = "Maximale bestandsgrote 3 MB";
            info.setStyle("color", "0xFF0000");
        } else if (file.type.toLowerCase() != ".jpg") {
            info.htmlText = "Alleen .jpg bestanden toegestaan";
        } else {
            uploadKnop._visible = true;
            info.htmlText = "Bestandsnaam: "+file.name+"<br>";
            info.htmlText += "Bestandsgrootte: "+file.size+"<br>";
            //info.htmlText += "Extentie: "+file.type+"<br><br>";
            info.htmlText += "<b>Klik op de upload knop om de upload te starten</b>";
            
            uploadKnop.onRelease = function() {
                //het gaat fout
                if (!file.upload("upload.php")) {
                    info.htmlText = "Upload script niet gevonden";
                    
                }
                
                //het gaat goed dus...
                else {
                    
                    /////////////////////twijfel////////////////////
                    sendNaam();
                    /////////////////////twijfel////////////////////
                    
                    progresBalk.balk._visible = true;
                    //dadelijk laten we deze werken
                }
            };
        }
        
    };
    
    //uploaden is bezig
    listener.onProgress = function(file:FileReference, bytesLoaded, bytesTotal){
        //procenten tonen hoeveel er al is ge upload
        info.htmlText = "Bezig met uploaden...";
        prc.htmlText = Math.round(bytesLoaded/bytesTotal*100);//+"% van "+file.size;
        //balk in laadBalk laten groeien
        progresBalk.balk._xscale = bytesLoaded/bytesTotal*100;
    };
    
    //klaar met uploaden
    listener.onComplete = function(file:FileReference){
        info.htmlText = file.name+" is succesvol geüpload.<br>U mag het formulier nu verzenden.";
        prc.htmlText = "OK";
        selecteerBestand.enabled = false;
        //info.htmlText += "<a href='#pad_naar_bestand'><u>klik om te bekijken</u></a>"
        progresBalk.balk._visible = false;
        uploadKnop._visible = false;
    }
    
    //listener aan de ref hangen
    fileRef.addListener(listener);
    En dit mijn php:

    PHP-code:
    <?php

    if ($_FILES['Filedata']['name'])
    {
        
    $nieuweLocatie 'uploads/'.$_FILES['Filedata']['name'];
        
        
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $nieuweLocatie);
        
        
    chmod ('uploads/'.$_FILES['Filedata']['name'] , 0644);
        
        
        if( !empty(
    $_POST) ){
            
            
    //?
            //$sendNieuwenaam = $_POST['naam'];
            //?
            
            //?
            
    move_uploaded_file($_FILES['naam'], $sendNieuwenaam))
            
    //?
        
    }
        
        
    ?>

    Alvast erg bedankt!

  2. De volgende gebruiker bedankt Trax voor deze nuttige post:

    ultddave (21 April 2010)

  3. #2
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    PHP-code:
    <?php

    function file_extension($filename)
    {
              return 
    end(explode("."$filename));
    }

    if (
    $_FILES['Filedata']['name'])
    {
        
    $nieuweLocatie 'uploads/'.$_FILES['Filedata']['name'];
        
        
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $nieuweLocatie);
        
        
    chmod ('uploads/'.$_FILES['Filedata']['name'] , 0644);
        
        
        if( isset(
    $_POST['naam']) ){
                                            
            
    $extension file_extension($_FILES['Filedata']['name']); // Get extension
            
    $sendNieuwenaam $_POST['naam'];
            if(
    rename("uploads/".$_FILES['Filedata']['name'].", "uploads/".$sendNieuwenaam."".$extension))
                  printf("
    Gelukt");
            else
                  printf("
    Mislukt");
            
        }
        
        ?>
    Je kan dus gewoon de "rename" functie van PHP gebruiken. De functie werkt zo:

    rename( oudpad, nieuwpad);
    Je kan de rename functie dus ook gebruiken om bestanden te verplaatsen.

    Bovenstaand script gaat er vanuit dat $sendNieuwenaam geen bestandsextensie bevat.

    Dus als naam.jpg wilt veranderen naar naam2.jpg, moet enkel "naam2" als parameter meegegeven worden. Het script kopieert zelf de bestandsextensie .jpg achter die naam2.

    PS: Het haakje van:
    if ($_FILES['Filedata']['name'])
    {
    Wordt nergens gesloten in de PHP code die je hebt geplaatst. Dus ik heb die in die van mij ook niet gesloten.

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 21 April 2010 om 15:37
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  4. De volgende gebruiker bedankt ultddave voor deze nuttige post:

    Trax (21 April 2010)

  5. #3
    Gevorderd   Trax's schermafbeelding
    Geregistreerd
    1 June 2005
    Berichten
    324
    Bedankjes
    3
    Bedankt
    32 keer in 25 posts
    Hey geweldig bedankt ultddave,

    hopelijk krijg je niet de indruk dat ik zelf niet gezocht heb, maar ik raakte er echt niet uit met die rename functie. Echt waar mega bedankt dat je er ook nog een beetje uitleg hebt bijgegeven, ik ga het zo proberen op te lossen. Hopelijk komt het goed, maar ik zou er niet van verschieten als ik hier nog eens moet terugkomen.

    Nogmaals merci!

  6. De volgende gebruiker bedankt Trax voor deze nuttige post:

    ultddave (21 April 2010)

  7. #4
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Geen probleem hoor. Ja die functies zijn soms niet echt duidelijk. Op deze site staat meestal wel een redelijk goede uitleg + voorbeeld code:
    http://php.net/manual/en/function.rename.php

    PS: Ik heb net gezien dat ik het uitroepteken voor isset($_POST['naam']) was vergeten te verwijderen.

    Het moet dus:
    if( isset($_POST['naam'])) zijn.

    (Ik heb het ook al geediteerd in de code in mijn vorige post)

    Succes. Als er iets niet moest lukken, dan vraag je het maar.

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  8. #5
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Wel even nog vermelden dat er misschien 1 probleem kan voorvallen met bovenstaand script. Als $_POST['naam'] niet wordt meegegeven (omdat die bijvoorbeeld leeg zou zijn of iets dergelijks.) Dan wordt de foto dus niet hernoemd (logisch). Maar het bestand is dan wel al geupload met de originele naam.

    PHP-code:
    <?php 

    function file_extension($filename

              return 
    end(explode("."$filename)); 


    if (
    $_FILES['Filedata']['name']) 

        
    $nieuweLocatie "uploads/"
        
        if( isset(
    $_POST['naam']) ){ 
                                             
            
    $extension file_extension($_FILES['Filedata']['name']); // Get extension 
            
    $sendNieuwenaam "".$_POST['naam']."".$extension;
            
    $nieuweLocatie .= $sendNieuwenaam
         
            
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $nieuweLocatie); 
         
            
    chmod ('uploads/'.$_FILES['Filedata']['name'] , 0644);          
        } 
         
        
    ?>
    In bovenstaande (geoptimaliseerde) code wordt de file enkel geupload als de nieuwe naam bestaat. Je kan eventueel nog specifieke dingen testen bij de naam. Bijvoorbeeld:
    if( isset($_POST['naam']) && strlen($_POST['naam']) > 2 )

    Om te kijken of de naam tenminste 3 karakters lang is.

    Om te kijken of de upload gelukt is moet je een if test rond de move_uploaded_file functie plaatsen.

    if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $nieuweLocatie))
    {
    // Gelukt
    }
    else
    {
    // Mislukt
    }

    PS: De code tussen de PHP tags in deze post is dus iets efficienter dan de vorige omdat je dus direct upload met de juiste naam. Ipv eerst te uploaden met de originele naam en dan pas handmatig hernoemd.

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  9. #6
    Gevorderd   Trax's schermafbeelding
    Geregistreerd
    1 June 2005
    Berichten
    324
    Bedankjes
    3
    Bedankt
    32 keer in 25 posts
    Mijn actionscript is een beetje aangepast. Ik probeer een de naam variabele mee te sturen vanuit het tekstvak name_txt. Ik steek die in de variabele nieuweNaam die ik naar het php bestand stuur. Vanuit het php bestand probeer ik een true terug te sturen naar de flash als het gelukt is, maar dat weet ik niet zeker hoe dat moet. Php is ook aangepast.

    Zoals het hier nu staat werkt het niet, zelfs het uploaden niet meer...

    Code:
    import flash.net.FileReference;
    info.html = true;//textveld html enabelen
    
    scaleMode = noScale;
    
    
    var bestandTypes:Array = new Array();
    
    var imageTypes:Object = new Object();
    imageTypes.description = "Images (*.jpg)";
    imageTypes.extension = "*.jpg;";
    bestandTypes.push(imageTypes);
    
    //class aanspreken
    var fileRef:FileReference = new FileReference();
    
    //de blader knop
    selecteerBestand.onRelease = function() {
        fileRef.browse(bestandTypes);
    };
    
    //upload knop en upload progres balk onzichtbaar maken
    uploadKnop._visible = false;
    progresBalk.balk._visible = false;
    progresBalk.balk._xscale = 0;
    
    
    /////////////////////twijfel////////////////////
    var send_varnaam:LoadVars = new LoadVars();
    function sendNaam(){
        
        send_varnaam.nieuweNaam = name_txt.text;
        send_varnaam.sendAndLoad("upload.php", receive_varnaam, "POST");
    }
    
    var receive_varnaam:LoadVars = new LoadVars();
    //wanneer er een reactie is van het php bestand:
    receive_varnaam.onLoad = function() {
        //wanneer hij verzonden is:
        if(Resultaat == true){
            test_txt.text = "Rename gelukt"
        }
        else{
            test_txt.text = "Alles kapot"
            
        }
    }
    /////////////////////twijfel////////////////////
    
    
    //een listener aanmaken waarmee we allerlei gegevens kunnen opvragen
    var listener:Object = new Object();
    
    listener.onSelect = function(file:FileReference) {
        //bestand is te groot
        if (file.size>3145728) {
            //3145728 bytes is 3 MB
            info.htmlText = "Maximale bestandsgrote 3 MB";
            info.setStyle("color", "0xFF0000");
        } else if (file.type.toLowerCase() != ".jpg") {
            info.htmlText = "Alleen .jpg bestanden toegestaan";
        } else {
            uploadKnop._visible = true;
            info.htmlText = "Bestandsnaam: "+file.name+"<br>";
            info.htmlText += "Bestandsgrootte: "+file.size+"<br>";
            //info.htmlText += "Extentie: "+file.type+"<br><br>";
            info.htmlText += "<b>Klik op de upload knop om de upload te starten</b>";
    
            uploadKnop.onRelease = function() {
                //het gaat fout
                if (!file.upload("upload.php")) {                
                    info.htmlText = "Upload script niet gevonden";
                    /*Dit komt omdat je de swf niet online bekijkt 
                    via een php enabled server.
                    Of anders bestaat upload.php gewoon echt niet.
                    */
                } 
                
                //het gaat goed dus...
                else {
                    
                    /////////////////////twijfel////////////////////
                    sendNaam();
                    /////////////////////twijfel////////////////////
                    
                    progresBalk.balk._visible = true;
                    //dadelijk laten we deze werken
                }
            };
        }
         
    };
    
    //uploaden is bezig
    listener.onProgress = function(file:FileReference, bytesLoaded, bytesTotal){    
        //procenten tonen hoeveel er al is ge upload
        info.htmlText = "Bezig met uploaden...";
        prc.htmlText = Math.round(bytesLoaded/bytesTotal*100);//+"% van "+file.size;
        //balk in laadBalk laten groeien
        progresBalk.balk._xscale = bytesLoaded/bytesTotal*100;
    };
    
    //klaar met uploaden
    listener.onComplete = function(file:FileReference){
        info.htmlText = file.name+" is succesvol geüpload.<br>U mag het formulier nu verzenden.";
        prc.htmlText = "OK";
        selecteerBestand.enabled = false;
        //info.htmlText += "<a href='#pad_naar_bestand'><u>klik om te bekijken</u></a>"
        progresBalk.balk._visible = false;
        uploadKnop._visible = false;
    }
    
    //listener aan de ref hangen
    fileRef.addListener(listener);

    PHP-code:
    <?php 

    function file_extension($filename

              return 
    end(explode("."$filename)); 


    if (
    $_FILES['Filedata']['name']) 

        
    $nieuweLocatie "uploads/"
        
        if( isset(
    $_POST['nieweNaam']) ){ 
                                             
            
    $extension file_extension($_FILES['Filedata']['name']); // Get extension 
            
    $sendNieuwenaam "".$_POST['nieweNaam']."".$extension;
            
    $nieuweLocatie .= $sendNieuwenaam
         
            
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $nieuweLocatie); 
         
            
    chmod ('uploads/'.$_FILES['Filedata']['name'] , 0644); 
            
            
    $Resultaat true// upload gelukt?
        
    echo '&Resultaat='.$Resultaat.'&'// het antwoord op de vorige vraag terug naar flash sturen
            
        

         
        
    ?>

  10. De volgende gebruiker bedankt Trax voor deze nuttige post:

    ultddave (21 April 2010)

  11. #7
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Ik steek die in de variabele nieuweNaam die ik naar het php bestand stuur.
    Waarschijnlijk komt het door deze 2 fouten;

    if( isset($_POST['nieweNaam']) ){

    $sendNieuwenaam = "".$_POST['nieweNaam']."".$extension;
    De letter "u" in "nieuweNaam" vergeten te schrijven.

    PS: Ik zie net dat die chmod ook aangepast moet worden om de rechten van die nieuwe file aan te passen;
    chmod ('uploads/'.$_FILES['Filedata']['name'] , 0644);
    Moet:
    chmod ($nieuweLocatie, 0644);
    zijn.

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 21 April 2010 om 22:35
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  12. #8
    Gevorderd   Trax's schermafbeelding
    Geregistreerd
    1 June 2005
    Berichten
    324
    Bedankjes
    3
    Bedankt
    32 keer in 25 posts
    Nogmaals bedankt he Dave, maar het werkt nog niet. Ook nie na die twee stomme fouten eruit gehaald te hebben. Kan ik die variabele nieuweNaam niet in een nieuwe php variabele steken en terugsturen als controle naar flash? Die laatste twee regels die ik aan de php heb toegevoegd om iets terug te sturen zijn pure gokken en dus waarschijnlijk mega verkeerd. Uploaden werkt dus ook niet meer en ik weet echt niet waar ik moet beginnen zoeken...

  13. De volgende gebruiker bedankt Trax voor deze nuttige post:

    ultddave (21 April 2010)

  14. #9
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    Deze werkt wel;

    PHP-code:
    <?php 

        
    function file_extension($filename
        { 
                  return 
    end(explode("."$filename)); 
        } 

        if(
    $_FILES['Filedata']['name']) 
        { 
                
    $nieuweLocatie "uploads/"
        
               if( isset(
    $_POST['nieuweNaam']) ){ 
                                             
                    
    $extension file_extension($_FILES['Filedata']['name']); // Get extension 
                    
    $sendNieuwenaam "".$_POST['nieuweNaam']."[COLOR="red"].[/COLOR]".$extension;
                    
    $nieuweLocatie .= $sendNieuwenaam;
        

                    if(
    move_uploaded_file($_FILES['Filedata']['tmp_name'], $nieuweLocatie))
                    echo 
    "Bestand ".$_FILES['Filedata']['name']." (nieuweNaam: ".$sendNieuwenaam.") is succesvol geupload!<br/>";
                else
                    echo 
    "Uploaden is mislukt.<br/>"


                    if(
    chmod($nieuweLocatie0644))
                    echo 
    "Chmodden is gelukt.<br/>";
                else
                    echo 
    "Chmodden is mislukt.<br/>"
            

                    
    $Resultaat true// upload gelukt?
            
                

                else
            {
                echo 
    "nieuweNaam bestaat niet.<br/>";
            }
        }
        else
        {
            echo 
    "Bestand bestaat niet.<br/>";
        }
    ?>
    (Mmm, de indentering wordt niet zo goed weergegeven op het forum)

    De code werkte inderdaad eerst niet. Had een dom foutje gemaakt.

    Ik had;
    $sendNieuwenaam = "".$_POST['nieweNaam']."".$extension;
    Maar $extension bevat niet de punt van de extensie. Dus je kreeg dan bijvoorbeeld: nieuwenaampng ipv nieuwenaam.png

    In de nieuwe code heb ik die punt er tussen gevoegd.

    $sendNieuwenaam = "".$_POST['nieuweNaam'].".".$extension;
    Uploaden werkt dus ook niet meer en ik weet echt niet waar ik moet beginnen zoeken...
    Heel makkelijk hoor. Als je zoals in bovenstaande code, overal zorgt voor error handling door "gelukt" / "mislukt" berichten te plaatsen. Kan je snel zien wat er verkeerd loopt. Als je dan bijvoorbeeld leest "Bestand bestaat niet". Dan weet je dat de if($FILES['Filedata']['name']) test faalde, en moet je het probleem daar zoeken. En dergelijke.

    Data verzenden van PHP naar Flash weet ik niets van. Ik ken spijtig genoeg geen Flash. :(

    Script kan je hier testen;
    http://www.errorplanet.com/test.php

    File kiezen + nieuwe naam ingeven. (Ik haal het script er wel binnekort af, om te voorkomen dat de server straks vol staat )

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 21 April 2010 om 23:28
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  15. #10
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.389
    Bedankt
    2.577 keer in 1.271 posts
    In dit topic staan 2 interessante linken over PHP in Flash;
    http://www.minatica.be/threads/68045...-php-variabele

    Daar kan misschien de oplossing bij staan.

    Succes .

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

Discussie informatie

Users Browsing this Thread

Momenteel bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Soortgelijke discussies

  1. Flash verdwijdt ' als je op foto klikt '
    Door teken in forum Webdevelopment & Programming
    Reacties: 2
    Laatste bericht: 19 November 2009, 11:37
  2. Hernoemen ...
    Door Phil O'Sophe in forum Grafisch algemeen
    Reacties: 7
    Laatste bericht: 19 June 2009, 21:12
  3. Bestanden hernoemen.
    Door nightraver in forum Tips & Trucs
    Reacties: 0
    Laatste bericht: 8 September 2007, 22:32
  4. mp3 files hernoemen
    Door bartjazz in forum Audiovisueel
    Reacties: 2
    Laatste bericht: 16 April 2006, 21:49

Favorieten/bladwijzers

Favorieten/bladwijzers

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •