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

    Problemi con upload di file

    Ciao a tutti,
    ho questo problema: 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:
    caricato nel mio sito, lo script 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
    "
    ;
                }
                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
                    
    move_uploaded_file($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_handle0000$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]".$tb_images_dir"/tb_".$img_prefix.$filename."[/img] File ".($counter+1)." Added
    "
    ;
                }
            }
        
    $counter++;
        }

        
    // Print Result
    echo <<<__HTML_END

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

    __HTML_END;
    ?>
    http://www.xiphonia.net

  2. #2
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    il problema probabilmente risiede nel php.ini, nel parametro upload_max_filesize..
    Se non erro di default è settato a 1mb prova a guardare
    Che mestiere difficile.....essere da soli ancora di più

  3. #3
    Originariamente inviato da Fractals87
    il problema probabilmente risiede nel php.ini, nel parametro upload_max_filesize..
    Se non erro di default è settato a 1mb prova a guardare

    Non credo che il problema sia nel parametro upload_max_filesize di php.ini, ciò perchè il chi hosta il mio sito, permette di effettuare l'upload di file fino a 50mb.

    In locale, funziona benissimo, io credo che sia un errore di timeout. Il problema è che ne capisco poco di php, lo sto studiando da autodidatta ed ancora sono più le lacune che le certezze.
    Nel caso fosse errore di timeout, esiste una istruzione e comando che mi aiuta a superere l'inconveniente?

    Grazie
    http://www.xiphonia.net

  4. #4
    Se è una questione di timeout (ma in quel caso dovrebbe venirti fuori l'errore specifico)
    puoi scrivere all'inizio dello script:

    set_time_limit(0);

    che disattiva il limite di timeout

    ---
    Cmq io non credo sia un timeout limit,
    è quasi sicuramente un problema di upload limit,
    però non del server (come dici tu accetta 50Mb) ma del DATABASE

    Se usi MySQL fai uno

    msql> show variables like '%max_allowed_packet%';

    in locale e in remoto e vedi la differenza...
    probbilmente il locale è >3MB e in remoto è <3MB

    se è così devi aprire il "my.ini" in remoto
    e settare:

    max_allowed_packet=999999488

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    ciao purtroppo io appartengo alla fascia degli utente che chiede aiuto e non a quella che è capace di trovare delle soluzioni, conosco benissimo il tuo stato d'animo in questo momento, so perfettamente che stai uscendo pazzo e reggere questo peso non è facile, ma come tutte le cose prima o poi si risolve tutto.

    Bhe fatta questa premessa un pò romanzesca, vorrei chiederti da dove hai studiato? cioè questo script l'hai trovato su un libro l'hai copiato da qualche guida o l'hai inventato tu?

    In ogni caso potresti darmi il link da cui potrei imparare a fare un upload di un immagine con anteprima e resize come il tuo?

  6. #6
    Originariamente inviato da jdijack
    ciao purtroppo io appartengo alla fascia degli utente che chiede aiuto e non a quella che è capace di trovare delle soluzioni, conosco benissimo il tuo stato d'animo in questo momento, so perfettamente che stai uscendo pazzo e reggere questo peso non è facile, ma come tutte le cose prima o poi si risolve tutto.

    Bhe fatta questa premessa un pò romanzesca, vorrei chiederti da dove hai studiato? cioè questo script l'hai trovato su un libro l'hai copiato da qualche guida o l'hai inventato tu?

    In ogni caso potresti darmi il link da cui potrei imparare a fare un upload di un immagine con anteprima e resize come il tuo?

    Ciao, io ancora non sono ingrado di scrivere uno script, ho scaricato un manuale e certo di personalizzare gli script che trovo:


    http://www.alessioluffarelli.it/guid...thumbnail.php; questo è il sito che spiega come effettuare il resize,

    http://blogs.sitepoint.com/php-gallery-system-minutes/ qui trovi la galleria fotografica php + mysql,
    io ho inserito prettyPhoto che rende la visualizzazione veramente piacevole.
    http://www.xiphonia.net

  7. #7
    Originariamente inviato da philbert
    Se è una questione di timeout (ma in quel caso dovrebbe venirti fuori l'errore specifico)
    puoi scrivere all'inizio dello script:

    set_time_limit(0);

    che disattiva il limite di timeout

    ---
    Cmq io non credo sia un timeout limit,
    è quasi sicuramente un problema di upload limit,
    però non del server (come dici tu accetta 50Mb) ma del DATABASE

    Se usi MySQL fai uno

    msql> show variables like '%max_allowed_packet%';

    in locale e in remoto e vedi la differenza...
    probbilmente il locale è >3MB e in remoto è <3MB

    se è così devi aprire il "my.ini" in remoto
    e settare:

    max_allowed_packet=999999488

    Grazieeeeeeeeeeeeeeeeee!!!! avevi ragione tu. ho modifato nel file htacces la grandezza del file..... ed ecco fatto.

    Grazie!!!!
    http://www.xiphonia.net

  8. #8
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202
    ma perdona una domanda la foto la vai a memorizzare proprio nel db ?!? cioè in photo_caption è contenuta l'immagine in stringa?!?
    Che mestiere difficile.....essere da soli ancora di più

  9. #9
    Originariamente inviato da Fractals87
    ma perdona una domanda la foto la vai a memorizzare proprio nel db ?!? cioè in photo_caption è contenuta l'immagine in stringa?!?

    No nel DB va solo il nome della foto.... cmq ho risolto, grazie.
    http://www.xiphonia.net

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.