upload script -> overwrite and rename

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • upload script -> overwrite and rename

    mahlzeit,ich mal wieder ^^
    also habe ein file upload gebaut,hier:
    PHP-Code:
    if(!empty($_FILES['Avatar'])){
    $tempname $_FILES['Avatar']['tmp_name'];
    $name $_FILES['Avatar']['name'];


    copy("$tempname""avatar/$name");


    nu möchte ich aber das er die datei nach dem upload umbenennt (z.b. in die $_GET['ID'] ) und falls sie schon existiert überschreibt.habe weder für das umbennen noch überschreiben was im netz bzw. hier gefunden. geht das überhaupt ?
    wollte das machen weil es ja dateinamen gibt die leerzeichen haben und dann nicht richtig angezeigt werden können im browser via link.
    es gibt natürlich auch die möglichkeit mit datenbank und md5.aber ich weiss nicht wie man den namen ohne die endung mit md5 umbenennt.
    lösung einfacher,umsetztung hängt :-/
    Zuletzt geändert von vizor; 13.10.2005, 19:04.

  • #2
    habe weder für das umbennen noch überschreiben was im netz bzw. hier gefunden
    überschreiben geschieht meistens automatisch. ansonsten: http://de.php.net/manual/en/function.rename.php

    weil es ja dateinamen gibt die leerzeichen haben und dann nicht richtig angezeigt werden können im browser via link.
    mit urlencode() ist es kein problem.

    aber ich weiss nicht wie man den namen ohne die endung mit md5 umbenennt.
    wie bitte? was heißt "mit md5 umbenennt"?

    Kommentar


    • #3
      hehe,hört sich komisch an,wird aber gemacht ^^
      hier der link zum beitrag :
      http://www.php-resource.de/forum/sho...ght=upload+md5

      naja von der idee nicht schlecht,aber obs im ganzen geht..hm,kp
      ok,werd man mit urlencode rumtesten :}
      thx erstmal

      Kommentar


      • #4
        auch blöd formuliert, aber es geht. siehe dazu http://de.php.net/manual/en/function.uniqid.php

        Kommentar


        • #5
          hm auch gut!
          frage :
          will jedem user ein seperates verzeichnis verpassen mit namen der get ID halt damit sich da die avatarbilder nicht gegenseitig überschreiben.müsste ja vorweg ein "create dir" oder sowas ähnliches machen....hmhm achja und falls es schon existiert nicht erstellen aber die datei trotzdem hochladen.möglich ? thx (ich weiss ich nerv langsam )

          Kommentar


          • #6
            mkdir()

            achja und falls es schon existiert nicht erstellen aber die datei trotzdem hochladen.möglich ?
            file_exists() bzw. is_dir()

            Kommentar


            • #7
              ok!
              hätte ja gerne

              PHP-Code:
              urlencode(uniqid($name)) 
              verwendet,nur leider macht er dann 11+1.jpg434ea9047ae1b draus.und des passt dann wieder nicht.

              Kommentar


              • #8


                string uniqid ( [string prefix [, bool more_entropy]] )

                uniqid() returns a prefixed unique identifier based on the current time in microseconds.

                Kommentar


                • #9
                  ups hehe,wie gut das ich dich hab
                  ehm ich hab ein neues problem.sobald ich mit mkdir ein verzeichnis erstell hab ich via ftp client keine rechte mehr in dem verzeichnis etwas zu löschen/hochzuladen etc. leigt evtl an den chmod einstellungen oder ? es ist nur in dem verzeichnis was ich mit
                  PHP-Code:
                  if(!is_dir("avatar/".$_GET['edit'])){
                  mkdir("avatar/".$_GET['edit']);

                  erstellt habe.und wie kriege ich die wiederweg ^^
                  Zuletzt geändert von vizor; 13.10.2005, 20:17.

                  Kommentar


                  • #10
                    neues prob...hier erstmal der code:
                    PHP-Code:
                    if(!empty($_FILES['Avatar'])){
                    $tempname $_FILES['Avatar']['tmp_name'];
                    $name $_FILES['Avatar']['name'];

                    if(!
                    is_dir("avatar/".$_GET['edit'])){
                    mkdir("avatar/".$_GET['edit'],0777);
                    }

                    copy("$tempname""avatar/".$_GET['edit']."/".urlencode($name)."");
                    mysql_query("UPDATE deadline_user 
                    SET Avatar = 'avatar/"
                    .$_GET['edit']."/".urlencode($name)."' 
                    WHERE ID = '"
                    .$_GET['edit']."'");

                    also mein prob ist das wenn das input feld "empty" ist er trotzdem den mysql_query macht und da halt nichts einträgt,also leer da ja auch nix angegeben ist.und das soll er nicht.wenns leer ist soll er auch nix eintragen.wo ist der fehler ?

                    Kommentar


                    • #11
                      mach mal print_r($_FILES); einmal leer und einmal ausgefüllt und zeig mal hier.

                      Kommentar


                      • #12
                        mit:
                        PHP-Code:
                        Array
                        (
                            [
                        Avatar] => Array
                                (
                                    [
                        name] => 11 1.jpg
                                    
                        [type] => image/jpeg
                                    
                        [tmp_name] => /var/www/2/3/3605/temp/phpve8HG4
                                    
                        [error] => 0
                                    
                        [size] => 3071
                                
                        )


                        ohne:
                        PHP-Code:
                        Array
                        (
                            [
                        Avatar] => Array
                                (
                                    [
                        name] =>
                                    [
                        type] =>
                                    [
                        tmp_name] =>
                                    [
                        error] => 4
                                    
                        [size] => 0
                                
                        )


                        hilft nicht wirklich weiter oder ?
                        Zuletzt geändert von vizor; 13.10.2005, 22:11.

                        Kommentar


                        • #13
                          schau genau hin - du prüfst:
                          PHP-Code:
                          if(!empty($_FILES['Avatar'])) 
                          aber wie du siehst, ist $_FILES['Avatar'] nicht leer - es ist ein array mit mehreren elementen.

                          wie musst du also prüfen?

                          Kommentar


                          • #14
                            ah!
                            PHP-Code:
                            if(isset($_FILES['Avatar'])){ 
                            *g*
                            thx!
                            update :
                            ne doch nicht.,..hm
                            update :
                            komm nicht drauf :-(
                            Zuletzt geändert von vizor; 13.10.2005, 22:18.

                            Kommentar


                            • #15
                              hm gibts noch mehr möglichkeiten ? hab ziemlich alles durch was mir einfällt..geht nichts,geb mir mal mehr tips

                              Kommentar

                              Lädt...
                              X