Problem mit erkennung von Dateityp jpg

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

  • Problem mit erkennung von Dateityp jpg

    Hallo Leute,

    vielleicht ist es ja ein bekanntes problem, ich bin jedoch heute das erste mal darauf gestossen.

    Und zwar hab ich ein fotoupload für eine gallery realisiert, was soweit alles kein problem war, hab natürlich viel getestet um zu sehen wie gut es funktioniert... dabei ist mir aufgefallen, dass mein upload fotos von einer namenhaften digicam nicht als jpg erkennt...also schon beim prüfen mit
    PHP-Code:
    if ((($_FILES['meinbild']['type'] == 'image/pjpeg') || 
              (
    $_FILES['meinbild']['type'] == 'image/jpeg')) && 
              (
    $_FILES['meinbild']['error'] == 0) && 
              (
    $_FILES['meinbild']['tmp_name'] != none) && 
              (
    $_FILES['meinbild']['name']) && 
              (
    $_FILES['meinbild']['size'] > 0)) 
    habe ich festegestellt, dass er mit 'type' deren format nicht erkennt ! ich hab das mal ausgeben lassen, jedoch zeigte mir das array nix... sondern error==1

    ich probierte bilder aus dem netz, bilder von meiner digicam usw... alles einwandfrei...aber bilder von dieser cam nahm er nicht... ich weiß nicht woran das liegt... kennt ihr das problem.. und lässt sich das irgendwie meistern?

    über tips oder hilfe wäre ich dankbar !

    dankeschön für zuhören

    Olli
    apache ,php5.1.1 , gd2
    Coder never die, they just GOSUB without RETURN

    Mein System

  • #2
    Re: Problem mit erkennung von Dateityp jpg

    Original geschrieben von ways
    ich hab das mal ausgeben lassen, jedoch zeigte mir das array nix... sondern error==1
    Das duerfte wohl wenig mit "namhafter-oder-nicht"-Digicam zu tun haben ...

    http://www.php.net/manual/en/feature...oad.errors.php
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Guten Morgen Wahsaga,

      was der fehlervode bedeutet war mir klar, problem ist jedoch, dass er keine dateien dieser cam erkennt und deren größe unter dem liegt, was ich z.b von meiner cam getestet habe

      meine bilder waren 2 mb gross, die bilder die nicht wollten nur 1,7 MB

      sollt eich testweise das $_SERVER['CONTENT_LENGTH'] verwenden ?
      hab ich noch nich im einsatz gehabt

      jedenfalls schon mal danke für ne antwort zu dieser uhrzeit

      gruss
      Olli
      Coder never die, they just GOSUB without RETURN

      Mein System

      Kommentar


      • #4
        Na ja, wenn print_r($_FILES) nur den Errorcode liefert und sonst nichts, dann wuerd' ich das mal glauben.
        (Eine Dateigroesse auf Platte sagt ja auch wenig aus. Zum Upload werden die Daten Base64 kodiert, und das wird dann auch was mehr.)


        Wenn nicht - du hast ja gleich mehrere Ueberpruefungen in deinem Script verknuepft, dann wuerd' ich erst mal herausfinden, welche davon false lieferten.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          also es liefert :

          Array ( [meinbild] => Array ( [name] => DSC_0107.JPG [type] => [tmp_name] => [error] => 1 [size] => 0 ) )

          wie du sehen kannst, liefert es nicht mal den dateityp

          und das ist ja die erste prüfung die ich vornehme, die so aber nen false liefert...

          also überprüfe ich jetzt nochmal die php.ini ?
          Coder never die, they just GOSUB without RETURN

          Mein System

          Kommentar


          • #6
            ok, hab ich wohl was an den augen gehabt !
            in der php.ini sind max 2 MB.

            die datei hat aber 2.3 MB

            hab bei prüfen der eigenschaften wohl aufs falsche file geschaut.. man man !

            da bleibt dem anwender nur noch, kleine files zu nutzen ?
            wenn der aber nicht genug ahnung hat... kann ich das irgendwie tricky regeln ?
            Coder never die, they just GOSUB without RETURN

            Mein System

            Kommentar


            • #7
              2 MB sind vie zu wenig. Selbst wenn du es "tricky" schaffst, die Datei hochzuladen, kannst du mit ihr praktisch gar nichts anfangen, ohne sofort ans Limit zu stoßen.
              Wenn du Bildern verarbeiten willst, musst du das Limit erhöhen. Da führt kein Weg dran vorbei.

              Kommentar


              • #8
                Original geschrieben von ways
                [B]also es liefert :

                Array ( [meinbild] => Array ( [name] => DSC_0107.JPG [type] => [tmp_name] => [error] => 1 [size] => 0 ) )

                wie du sehen kannst, liefert es nicht mal den dateityp
                Wie auch? Das Format einer Grafikdatei prüft man ja auch mit getimagesize(). Ich gebe zu, der Name der Funktion ist nicht sehr glücklich gewählt, aber neben dem Dateiformat spuckt sie auch noch die Pixel-Dimensionen aus. Und mit denen wiederum kannst du grob abschätzen, wie viel Hauptspeicher dein Bild einnehmen wird.

                da bleibt dem anwender nur noch, kleine files zu nutzen ?
                Wenn du das Speicherlimit nicht ändern darfst -- ja.

                wenn der aber nicht genug ahnung hat... kann ich das irgendwie tricky regeln ?
                Es genügt, das Speicherlimit in der PHP.ini zu ändern.

                Dein eigentliches Problem ist aber das Upload-Size-Limit. Das sagt mir zumindest dein Fehlercode (1) und die Angabe 2MB ... ;-)
                Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                Kommentar


                • #9
                  na das mit getimagesize() it ja schon mal ne hilfreiche information !
                  das mit 'mime' auszulesen auch ein leichter weg !

                  was die php.ini angeht... nun ... ich hab natürlich zugriff auf meine lokale und kann ändern, bei dem hoster jedoch nicht
                  dort hab ich mir das [COLOR=blue]upload_max_filesize[/COLOR] per phpinfo mal anzeigen lassen... und auch der nutzt max 2 MB


                  also bin ich da mehr oder weniger aufgeschmissen und muss dem anwender nen hinweis einblenden, dass er seine grafik verkleinern soll ? z.b mit irfanview oder so !?
                  Coder never die, they just GOSUB without RETURN

                  Mein System

                  Kommentar


                  • #10
                    Eventuell kannst du das Memory-Limit mit ini_set() hochsetzen.

                    Der Hinweis auf IrfanView ist übrigens in mehrfacher Hinsicht praktisch:

                    Erstens kostet es ja nichts. ;-)

                    Zweitens haben neuere Irfanview-Versionen (seit Ver. 4.20) ein Tool an Board, mit dem man beim Speichern die maximale Größe von JPEG-Dateien in KiBytes angeben kann. Das Teil heißt RIOT (Radical Image Optimization Tool). Im englischsprachigen IrfanView findet man diese Option im File-Menü unter "Save for Web ... (PlugIn)". In deutscher Sprache: "Datei" -> "Speichern fürs Web ... (PlugIn)".
                    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

                    Kommentar

                    Lädt...
                    X