Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [PHP] Upload immagine su Aruba non va

    Salve, ho visto che di post ce ne sono ma vorrei entrare un pò più sullo specifico.

    Prima di arrabattarmi a creare una gestione per l'upload e la modifica di immagini mi sono documentato ed ho constatato:
    1° Aruba ha il necessario per lavorare le immagini.
    2° Ha un upload_max_filesize di ben 50 Mega.
    3° Ha un post_max_size di 22 Mega.
    4° Ha un max_execution_time di 120 secondi.

    La mia form, oltre che essere per i file è anche post.

    La sostanza è che carico un'immagine, la copio con un determinato nome nel formato originale (es. 1.jpg), la copio ridimensionata a 500 px lato lungo (1_medium.jpg) e la copio ridimensionata ancora lato lungo da 100 px (1_small.jpg).

    Il tutto dentro la fantomatica cartella public, quindi non c'è neanche problema di scrittura in tal senso.

    Però stranamente, con un'immagine da neanche 1,5mb, dopo "soli" 45 secondi si pianta e non fa quello che gli ho detto.

    Io ora temo questa cosa, dovendo fare le operazioni sopracitate mi chiedevo se in qualche modo il mio script non vada a sforare qualche altro parametro, ad esempio leggo che il memory_limit è 24 Mega.

    Si parla si di 1,5 mb di jpg, ma dopo anni di pastrugnamenti in grafica so bene quanto può pesare un jpg quando ci lavori, quindi mi chiedevo se non fosse quello il problema...

    Voi cosa mi dite?

    P.S. riducendone le dimensioni ora pesa poco più di 500kb e riesce a lavorarla, che sia quindi questo il problema?

    Tnx

  2. #2
    non ha importanza la dimensione del file immagine compresso

    Puoi calcolare lo spazio della memoria necessaria per aprire l'immagine, per intero, in memoria con una semplice formuletta:

    Larghezza * Altezza * ByteColori

    ByteColori corrisponde a 4 se l'immagine e a 32bit (RGBA), 3 byte se l'immagine è RGB (24bit), 2 byte se l'immagine è a 15 o 16 bit (65 mila colori) ed infine 1 byte se l'immagine è a scala di grigi, usa 256 colori, o utilizza un indice colori da 256 pastelli (vedi le gif o le png indicizzate ad esempio)

    In realtà la larghezza, che corrisponde ad una riga, non è solo la "larghezza": siccome il valore deve essere allineato a 32 bit (4 byte) la larghezza corrisponde alla larghezza più un valore chiamato in gergo "stride" che serve per l'allineamento

    Comunque puoi considerare larghezza*altezza*bytecolori il minimo per aprire un immagine
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    L'immagine è a 24bit ed è 2560*1920, secondo la tua formula sto intorno ai 14 mb, ma contanto i vari pastrugnamenti che faccio è altamente probabile che passi i 24mb di limite

    Tnx!

  4. #4
    Originariamente inviato da Debiru
    L'immagine è a 24bit ed è 2560*1920, secondo la tua formula sto intorno ai 14 mb, ma contanto i vari pastrugnamenti che faccio è altamente probabile che passi i 24mb di limite

    Tnx!
    ecco, considera che non è proprio 2560*1920*3 perché per l'appunto ogni "riga" dell'immagine è allineata e quindi è un pò di più
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Eh, dovrò usare anche la funzione memory_get_usage() per rendermi conto di quanta memoria stia usando...
    In questo modo, creando una classe, potrei usare il try catch e indicare un eccesso di utilizzo di memoria...

    Uff, altro lavoro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.