Bildupload funktioniert nicht

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

  • Bildupload funktioniert nicht

    Hallo,

    Ich wusste leider nicht, wie ich das Thema treffender hätte bezeichnen sollen.

    Ich habe einen einfachen Bild-Upload geschrieben, welcher ein Thumbnail des hochgeladenen Bildes erstellt und dieses in einem relativen Verzeichnis speichert.

    Die Dateien liegen auf einem Server, und für mich funktioniert alles einwandfrei.

    Nun läuft es bei einem anderen Nutzer überhaupt nicht, es wird schlicht kein Bild hochgeladen. Dieser greift auf genau den selben Server zu, hat es schon mit mehreren Browsern probiert und all meine serverseitigen Überprüfungen, das Problem zu finden, scheitern.

    Nach dem Speichern des Bildes überprüfe ich sogar mit folgendem Code, ob das Bild wirklich auf dem Server liegt:
    PHP-Code:
    if(is_file($thumbnailsavepath))
                   return 
    true;
               else 
                   return 
    false
    Ganz schlicht, und es wird jedesmal "true" zurückgegeben aber nichts gespeichert.

    Folgenden Browser verwendet der Nutzer bei dem es nicht funktioniert:
    Code:
    Mozilla/4.0 (compatible; MSIE 7.0; 
    Windows NT 5.1; Avant Browser; Avant Browser; .NET CLR 2.0.50727; Avalon 6.0.5070; WinFX RunTime 3.0.50727; InfoPath.1)
    Ich verstehe nicht, weshalb serverseitig alles einwandfrei zu funktionieren scheint, aber kein Bild auf dem Server ankommt...

    Meine Möglichkeiten des Testens sind leider sehr begrenzt, da ich mit der besagten Person nur über Email in Kontakt stehe und den Fehler selbst wie gesagt nicht nachvollziehen kann...

    Woran könnte es denn noch liegen oder wie kann ich das Problem weiter eingrenzen?

    Mit Grüßen

  • #2
    also ohne den ganzen code kann man wenig sagen, wo wird Dein bild wie gespeichert?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Hallo, ich habe da folgende Funktion (die ich nicht selbst geschrieben habe):

      PHP-Code:
      function create_thumbnail($image,  $width$save_dest$quality="75"$prefix 0) {

          
      $extension 'jpg';
          
      $file_pfad explode('/',$image);
          
      $file_pfad array_reverse($file_pfad);

          
      $newimage imagecreatefromjpeg($image);

            
      $imagewidth imagesx($newimage);
            
      $imageheight imagesy($newimage);

            
      $thumbnailwidth $width;
             
      $thumbnailheight intval$imageheight $thumbnailwidth $imagewidth);

            if(
      function_exists("imagecreatetruecolor")) $thumbnail imagecreatetruecolor($thumbnailwidth$thumbnailheight);
             else 
      $thumbnail imagecreate($thumbnailwidth$thumbnailheight);

          if(
      function_exists("imagecopyresampled"))
              
      imagecopyresampled($thumbnail$newimage0000$thumbnailwidth$thumbnailheight$imagewidth$imageheight);
          else
              
      imagecopyresized($thumbnail$newimage0000$thumbnailwidth$thumbnailheight$imagewidth$imageheight);

          
      $thumbnailsavepath $save_dest;

          
      $check imagejpeg($thumbnail$thumbnailsavepath$quality);

             
      imagedestroy($thumbnail);

             if(!
      $check) {
                 
      imagedestroy($newimage);
              return 
      FALSE;
             } else {
                 if(
      is_file($thumbnailsavepath))
                     return 
      true;
                 else 
                     return 
      false;
             }

      Die auch sowohl bei mir als auch bei dem anderen Nutzer immer brav "true" zurückgibt, nach folgendem Aufruf:

      PHP-Code:
      if(!create_thumbnail($_FILES['file'.$i]['tmp_name'], 640$name"80")) {
          echo 
      "Es ist etwas schiefgegangen!<br />";
          echo 
      $_FILES['file'.$i]['tmp_name'].'--->'.$name;

      Wie gesagt funktioniert bei mir alles einwandfrei und ich kann auf das Bild zugreifen. Daher habe ich mal Fehler im serverseitigen Code ausgeschlossen...

      Grüße

      PS: Bitte nicht über die Syntax der Funktion beschweren, die habe ich quick & dirty einfach übernommen und ein paar kleinere Anpassungen gemacht.

      /e: Das Bild wird als $name = 'fotos/'.$folder.'/'.$idar[1].'_'.time().'_'.$i.'.jpg'; gespeichert.

      Kommentar


      • #4
        und die berechtigungen für den Ordner in dem Du dann speicherst sind korrekt gesetzt?
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Sind sie, wie bereits gesagt, bei mir funktioniert ein und dasselbe Script wie es soll.

          Ich habe schon überlegt ob die Dateien irgendwie versteckt hochgeladen wurden, sodass is_file() sie zwar entdeckt, aber sie im ftp o.ä. nicht sichtbar sind...

          Kommentar


          • #6
            Das selbe Script mit demselben Formular auf dem selben Server mit der gleichen Umgebung, der einzige UNterschied ist der benutzte Browser?
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar


            • #7
              Naja... PC, internet Anbindung (also Router, ggf. Firewalls oder so..) auch noch, aber ich weiß wirklich auch nicht was das bewirken könnte...

              Bah.

              Kommentar


              • #8
                naja erstmal ist Deine Funktion natürlich auch verbesserungswürdig...
                und irgendwie sehe ich keinerlei Debuggingversuche Deinerseits.
                Wird denn wirklich ein jpg geladen?
                Was steht in $_FILES
                Schmeiss mal alles unnütze aus Deiner Funktion raus, benutze is_uploaded_file(), etc.
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  Ich glaube die Hilfe ist auch voll am Thema vorbei. Wenn er mit seinem Browser Bilder hochladen kann und ein anderer mit seinem Browser keine Bilder hochladen kann, dann wird das Problem nicht an php liegen.

                  Ich hatte mal genau das selbe Problem - ist aber schon lange her. Das Problem lag damals an der <form die ich erstellt habe - und zwar sind action und method ja angegeben, aber das Problem lag daran dass folgendes fehlte:

                  Code:
                  enctype="multipart/form-data"

                  Kommentar


                  • #10
                    ist ebenfalls angegeben, mir ist kein browser bekannt der ohne den Zusatz nen Dateiupload hinkriegt.

                    Da liegt das Problem zumindest auch nicht.

                    Kommentar


                    • #11
                      naja ich würde erst mal meine Funktion auf ein besseres Level stellen, und ein kontrollierten Test mit debugging mit dem betroffenen Nutzer vereinbaren, wenn das Thema wichtig genug ist.

                      wer weiss welche Einstellungen Dein Nutzer hat, die evt. lokal das absenden abweisen, noscript, AOL Nutzer oder sonstiges...
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar

                      Lädt...
                      X