Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Out of memory bei ImageCreateFromJPEG

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Out of memory bei ImageCreateFromJPEG

    Hallo.

    Mein PHP-Skript macht folgendes:
    Ein hochgeladenes Bild mittels move_uploaded_file() verschieben, und anschließend versuche ich es mit ImageCreateFromJPEG zu öffnen. Folgenden fehler bekomme ich:

    Fatal error: Out of memory (allocated 14417920) (tried to allocate 8252 bytes) in {unwichtig}/upload.php on line 159

    phpinfo(); zeigt ein memory_limit von 1024MB, wenn ich allerdings die php.ini öffne, die laut phpinfo geladen wird, finde ich ein memory_limit von 32MB vor. Dieses habe ich bereits auf 64MB erhöht, der fehler kommt weiterhin.
    Komisch ist, dass der Fehler nicht immer kommt, nur Teilweise bei manchen Bildern.
    Wodran kann das noch liegen, memory_limit sollte doch i.O. sein.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

  • #2
    Zitat von tkausl Beitrag anzeigen
    Fatal error: Out of memory (allocated 14417920)
    Das sind knapp 14 MB.

    phpinfo(); zeigt ein memory_limit von 1024MB, wenn ich allerdings die php.ini öffne, die laut phpinfo geladen wird, finde ich ein memory_limit von 32MB vor. Dieses habe ich bereits auf 64MB erhöht, der fehler kommt weiterhin.
    Das kann eigentlich nicht sein, die Fehlermeldung sagt was anderes.

    Komisch ist, dass der Fehler nicht immer kommt, nur Teilweise bei manchen Bildern.
    Was soll daran komisch sein?
    [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      Das sind knapp 14 MB.


      Das kann eigentlich nicht sein, die Fehlermeldung sagt was anderes.


      Was soll daran komisch sein?
      Zu 1: es sind genau 13MB
      Zu 2: Das es "eigentlich" nicht sein kann is mir klar, sie zeigt aber definitiv 1028MB memory_limit, und die php.ini die dort angezeigt wird enthällt 64MB
      Zu 3: Dass es auch teilweise mit größeren Bildern funktioniert (glaube ich, bin mir nicht sicher)

      Achja als Anmerkung: Ich habe auf dem Root-Server PD-Admin installiert. Ob das evtl. fehler enthällt?
      Allerdings ist es so, auch wenn es komisch ist, dass die php.ini 64MB enthällt und die phpinfo 1024MB
      [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

      Kommentar


      • #4
        Zitat von tkausl Beitrag anzeigen
        Zu 1: es sind genau 13MB
        Nein, 13,75.

        Zu 2: Das es "eigentlich" nicht sein kann is mir klar, sie zeigt aber definitiv 1028MB memory_limit, und die php.ini die dort angezeigt wird enthällt 64MB
        Schon allein das passt ja kaum zusammen.
        In welcher Spalte zeigt phpinfo dir das an, local value oder master?
        Sicher, dass die gleichen Werte auch für den Ort, an dem das Script ausgeführt wird, gelten?

        Zu 3: Dass es auch teilweise mit größeren Bildern funktioniert (glaube ich, bin mir nicht sicher)
        Größer als was?
        Dass die Dateigröße nicht wirklich eine Rolle spielt, ist ja wohl hoffentlich klar.
        [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

        Kommentar


        • #5
          Zitat von ChrisB Beitrag anzeigen
          In welcher Spalte zeigt phpinfo dir das an, local value oder master?
          Sicher, dass die gleichen Werte auch für den Ort, an dem das Script ausgeführt wird, gelten?


          Größer als was?
          Dass die Dateigröße nicht wirklich eine Rolle spielt, ist ja wohl hoffentlich klar.
          In beiden.
          Ja sollten sie.
          Der fehler tritt in upload.php auf, und genau in der habe ich ein phpinfo() reingemacht zum testen.

          Spielt sie nicht?
          Ich dachte mit: Größere Datei = Mehr Arbeitsspeicherverbrauch naja ^^
          [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

          Kommentar


          • #6
            ich fang mal mit dem letzteren an..

            da du Jpegs lädst, sind diese Komprimiert - aber als img-objekt der GD packt er sie aus und legt sie in den Arbeitsspeicher mit 3 Byte Speicher pro Bildpixel (3 x 8 bit Jpeg enthält keinen Alpha-Kanal ) + evtl Farbtabellen -> ein 1024x768 Bld kommt entsprechend auf 786432 Pixel -> 2.25 mb - dazu kommt der Speicherverbrauch von Farbtabellen.
            deine 14xxxx deuten auf ein ziemlich großes Bild hin (digicam? ) schätzungsweise 2500x19xx kein Wunder das dein PHP ins schwitzen kommt - du vergisst offenbar, das diese 64 mb der GESAMTE Speicher sind, der für PHP zur Verfügung steht .. da liegt dein Script, sämtliche Variablen, eben solche Bild-Objekte und so weiter drin. Im Fall von move_uploaded_file ... könnte es sein, dass der Speicher fürs Bild sogar 2 mal benötigt wird - einmal existiert das Bild ja schon als $_FILES-Objekt - gut der richtet sich nun wirklich nach der Angabe im Dateisystem - und nun lädst du es in den begrenzten Speicher.. dabei ist GD bekannt dafür SEHR VIEL Speicher zu belegen - zumindest vorschlagsweise stell den Wert bitte auf 128mb - das ist sowieso der Initialwert, direkt nach der Installation, wenn ich mich recht erinner
            "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

            Kommentar


            • #7
              Oh man...
              Also ich such mich da tot, und letzendlich ligt es dadran, dass ich im PD-Admin Administrationsmenü dem Endkunden nicht genügend Arbeitsspeicher zugesprochen habe...
              Jetzt läuft es. Vielen dank für die Antworten
              [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

              Kommentar

              Lädt...
              X