Visualizzazione risultati 1 fino 11 di 11

Discussione: Problemi con upload di file

  1. #1
    akis non è connesso Utente giovane
    Data registrazione
    03-03-2010
    Residenza
    Acireale
    Messaggi
    79

    Predefinito Problemi con upload di file

    Salve ragazzi,
    dopo aver studiato ho aggiornato e corretto questo script che effettua l'upload di fotografie, inserendo i dati nel mio db.
    Lo provo in localhost e funziona perfettamente anche con le foto di grandi dimensioni, sono riuscito anche ad inserire le istruzioni che effettuano il resize e riducono la qualità per avere file più piccoli, ma ieri l'amara sorpresa:
    sul Altervista carica solo i file di piccola dimensione, provando quelli "più pesanti", tipo 3 MB o più lo script non carica nulla.
    Mi aiutate a capire dove sbaglio? Grazie
    Riporto interamente il file UPLOAD richiamato dal form

    Codice PHP:
    <?php

    define
    ("IMAGE_QUALITY", 90);


    include(
    "config.inc.php");

    // inizializzazione
    $result_final = "";
    $counter = 0;

    // List of our known photo types
    $known_photo_types = array(
    'image/pjpeg' => 'jpg',
    'image/jpeg' => 'jpg',
    'image/gif' => 'gif',
    'image/bmp' => 'bmp',
    'image/x-png' => 'png'
    );

    // GD Function List
    $gd_function_suffix = array(
    'image/pjpeg' => 'JPEG',
    'image/jpeg' => 'JPEG',
    'image/gif' => 'GIF',
    'image/bmp' => 'WBMP',
    'image/x-png' => 'PNG'
    );

    // Fetch the photo array sent by preupload.php
    $photos_uploaded = $_FILES['photo_filename'];

    // Fetch the photo caption array
    $photo_caption = $_POST['photo_caption'];

    while(
    $counter <= count($photos_uploaded) )
    {
    if(
    $photos_uploaded['size'][$counter] > 0)
    {
    if(!
    array_key_exists($photos_uploaded['type'][$counter], $known_photo_types))
    {
    $result_final .= "File ".($counter+1)." is not a photo<br />";
    }
    else
    {
    mysql_query( "INSERT INTO ".$db_prefix."gallery_photos(`photo_filename`, `photo_caption`, `photo_category`) VALUES('0', '".addslashes($photo_caption[$counter])."', '".addslashes($_POST['category'])."')" );
    $new_id = mysql_insert_id();
    $filetype = $photos_uploaded['type'][$counter];
    $extention = $known_photo_types[$filetype];
    $filename = $new_id.".".$extention;

    mysql_query( "UPDATE ".$db_prefix."gallery_photos SET photo_filename='".addslashes($img_prefix.$filename)."' WHERE photo_id='".addslashes($new_id)."'" );

    // Store the orignal file
    copy($photos_uploaded['tmp_name'][$counter], $images_dir."/".$img_prefix.$filename);

    // Let's get the Thumbnail size
    $size = GetImageSize( $images_dir."/".$img_prefix.$filename );
    if(
    $size[0] > $size[1])
    {
    $thumbnail_width = 160;
    $thumbnail_height = (int)(160 * $size[1] / $size[0]);
    }
    else
    {
    $thumbnail_width = (int)(120 * $size[0] / $size[1]);
    $thumbnail_height = 120;
    }

    // Build Thumbnail with GD 1.x.x, you can use the other described methods too
    $function_suffix = $gd_function_suffix[$filetype];
    $function_to_read = "ImageCreateFrom".$function_suffix;
    $function_to_write = "Image".$function_suffix;

    // Read the source file
    $source_handle = $function_to_read ( $images_dir."/".$img_prefix.$filename );

    if(
    $source_handle)
    {
    // Let's create an blank image for the thumbnail
    $destination_handle = Imagecreatetruecolor( $thumbnail_width, $thumbnail_height );

    // Now we resize it
    ImageCopyResampled ( $destination_handle, $source_handle, 0, 0, 0, 0, $thumbnail_width, $thumbnail_height, $size[0], $size[1] );
    }

    // Let's save the thumbnail
    $function_to_write( $destination_handle, $tb_images_dir."/tb_".$img_prefix.$filename );
    ImageDestroy($destination_handle );
    //

    $result_final .= "<img src='".$tb_images_dir. "/tb_".$img_prefix.$filename."' /> File ".($counter+1)." Added<br />";
    }
    }
    $counter++;
    }

    // Print Result
    echo <<<__HTML_END

    <html>
    <head>
    <title>Photos uploaded</title>
    </head>
    <body>
    $result_final
    </body>
    </html>

    __HTML_END;
    ?>

  2. #2
    Guest

    Predefinito

    Non ho letto il tuo script, ma visto che con i piccoli funziona, credo sia corretto.

    Probabilmente lo script va in timeout. Hai verificato?

  3. #3
    akis non è connesso Utente giovane
    Data registrazione
    03-03-2010
    Residenza
    Acireale
    Messaggi
    79

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Non ho letto il tuo script, ma visto che con i piccoli funziona, credo sia corretto.

    Probabilmente lo script va in timeout. Hai verificato?
    Hai ragione simpleticket, credo pure io che il problema sia il timeout, ma non so come gestire questo evento. tu cosa mi consigli di fare? c'è qualcosa che un principiante come me può fare?

    Grazie

  4. #4
    Guest

    Predefinito

    Il time limit su aletrvista è di 30 secondi.
    Puoi provare a dividere i processi.

    Prima l'upload e poi il resize

  5. #5
    akis non è connesso Utente giovane
    Data registrazione
    03-03-2010
    Residenza
    Acireale
    Messaggi
    79

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Il time limit su aletrvista è di 30 secondi.
    Puoi provare a dividere i processi.

    Prima l'upload e poi il resize


    Ho provato anche a separare i processi.... ma nulla, ho pure provato a cambiare funzione, anziché copy ho usato la funzione move_uploaded_file.... identico risultato..... in locale funzione che è una meraviglia ..... su Altervista ....NO

  6. #6
    Guest

    Predefinito

    Citazione Originalmente inviato da akis Visualizza messaggio
    Ho provato anche a separare i processi.... ma nulla, ho pure provato a cambiare funzione, anziché copy ho usato la funzione move_uploaded_file.... identico risultato..... in locale funzione che è una meraviglia ..... su Altervista ....NO
    In locale i tempi di upload non sono neppure paragonabili con quello che succede su internet

  7. #7
    akis non è connesso Utente giovane
    Data registrazione
    03-03-2010
    Residenza
    Acireale
    Messaggi
    79

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    In locale i tempi di upload non sono neppure paragonabili con quello che succede su internet
    dimenticato...... lo script in Altervista, non da nessun errore, ovvero, richiamo la pagina form, seleziono il file da caricare e clicco sul tasto "Invia".

    Viene richiamato in file upload.php....... rimane una pagina bianca, nessun errore, morto completamente .............

  8. #8
    Guest

    Predefinito

    Io sto prendendo per buono quello che hai detto.
    Per i file piccoli funziona, per i grandi no.
    Cosa differenzia i due casi? il tempo necessario a processarli.

    Se ci fosse un errore di scripting, il processo non funziona in nessun caso.
    Ti ribadisco che non puoi paragonare le prove in locale con quello che succede su internt (non solo su AV). I tempi non si possono neppure paragonare.

  9. #9
    akis non è connesso Utente giovane
    Data registrazione
    03-03-2010
    Residenza
    Acireale
    Messaggi
    79

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Io sto prendendo per buono quello che hai detto.
    Per i file piccoli funziona, per i grandi no.
    Cosa differenzia i due casi? il tempo necessario a processarli.

    Se ci fosse un errore di scripting, il processo non funziona in nessun caso.
    Ti ribadisco che non puoi paragonare le prove in locale con quello che succede su internt (non solo su AV). I tempi non si possono neppure paragonare.
    sto caricando diver foto prelevate da internet: lo script funziona mi ha caricato immagini fino a 1,5 MB, le altre, quelle mie, che sono di dimensioni superiori.......... nulla

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da akis Visualizza messaggio
    sto caricando diver foto prelevate da internet: lo script funziona mi ha caricato immagini fino a 1,5 MB, le altre, quelle mie, che sono di dimensioni superiori.......... nulla
    Appunto.

    Se con file piccoli funziona, non è un problema di script ma di tempo.

    Intanto sul web una immagine 4000x3000 non ha granchè senso è solo molto pesante e nulla aggiunge ad una 1280x1024.

    Potresti o fare il resize prima di fare l'upload oppure fare l'upload via FTP.

  11. #11
    akis non è connesso Utente giovane
    Data registrazione
    03-03-2010
    Residenza
    Acireale
    Messaggi
    79

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    Appunto.

    Se con file piccoli funziona, non è un problema di script ma di tempo.

    Intanto sul web una immagine 4000x3000 non ha granchè senso è solo molto pesante e nulla aggiunge ad una 1280x1024.

    Potresti o fare il resize prima di fare l'upload oppure fare l'upload via FTP.


    Ho risolto...... scusami di ho seccato tutto il pomeriggio a causa della mia scarsa preparazione....
    allora, il problema è stato risolto così: ho settato la dimensione massima dal file .htaccess... se dire...... se posso aiutarti io nel mio piccolo...... a disposizione e grazie per il tempo che mi hai dedicato. Ciao

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •