Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87

    Problema con script upload carica i .jpg ma non .JPG

    Salve ragazzi sto usando uno script per l'upload di immagini sul mio sito ( in locale )

    Funziona tutto alla perfezione riesce a caricare immagini .gif .png .jpg

    ma quando carico una foto .JPG ( con le lettere in maiuscolo )

    mi da errore.

    Questo è lo script:

    Codice PHP:
    <?php
    //Impostazioni varie da modificare a piacimento
    $dimensione_max '12600000';                         // Dimensione massima delle foto
    $upload_dir './upload';                        // Cartella dove posizione le foto
    $estensioni = array ("png""jpg""gif");             // Tipi di File consentiti
    $noSubmitSend '<p2>Nessun upload eseguito!</p2>';            // Messaggio di errore quando viene richiamato direttamente lo script PHP
    $wrongExt '<p2>Estensione file non valida!</p2>';            // Messaggio di errore per tipo di file non consentito
    $tooBig '<p2>Il file eccede la dimensione max!</p2>';        // Messaggio di errore per file troppo grande
    $thatsAll '<p2>Foto caricata con successo!</p2>';            // Messaggio di OK per upload corretto
    $wrongUp '<p2>Something wrong here!</p2>';                    // Messaggio di errore quando lo script non riesce ad eseguire l'upload
    //***************************************
     
    // Controllo il submit del form HTML...
    if(isset($_POST['invia_foto_negozio'])) {
        
    $file $_FILES['userimage']['name'];
        
    // Controllo il tipo di file...
        
    if(in_array(array_pop(explode('.',$file)),$estensioni)) {
     
            
    // Controllo la dimensione del file...
            
    $dimensione_file $_FILES['userimage']['size'];
            if (
    $dimensione_file $dimensione_max) {
                print 
    $tooBig;
            } else {
                
    doUpload($file$upload_dir);            
            }
     
        } else {
            print 
    $wrongExt;
        }
    } else {
        print 
    $noSubmitSend;
    }
     
     
    function 
    doUpload($file$upload_dir) {
        global 
    $thatsAll;
     
        
    $nomefile $_FILES['userimage']['tmp_name'];
        
    $nomereale $_FILES['userimage']['name'];
        
    $nomereale htmlentities(strtolower($nomereale));
     
        if (
    is_uploaded_file($nomefile)) {
            
    $newname = ($nomereale);
     
            
    $ext end(explode('.',$nomereale));
            
    $filename explode('.',$nomereale);
            if (
    file_exists($upload_dir.'/'.$nomereale)) {
                
    $filename[0] .= '.';
                for (
    $a=0;$a<=9;$a++)
                    
    $filename[0] .= chr(rand(97,122));
                
    $newname $filename[0] . '.' $ext;
            }
     
            
    $newname str_replace(' ''_'$newname);
     
            @
    move_uploaded_file($nomefile,($upload_dir.'/'.$newname));
            print 
    $thatsAll;
        } else print 
    $wrongUp;
     
    }
    ?>
    Ho provato ad aggiungere l'estensione .JPG nell'arrey estensioni ma nulla da fare cosa mi consigliate?

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    $estensioni = array ("png", "jpg", "gif");
    Aggiungi: "PNG","JPG","GIF"

    oppure

    if(in_array(array_pop(explode('.',$file)),$estensi oni)) {
    trasformalo in
    if(in_array(strtolower(array_pop(explode('.',$file ))),$estensioni)) {

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    ciao ti ringrazio per i suggerimenti, il primo lo avevo gia utilizzato ma non è servito a nulla

    ma purtroppo anche il secondo non ha dato nessun risultato.

    In effetti la funzione che tu hai aggiunto strtolower() che se non erro serve a trasformare in minuscolo tutte le le lettere non sembra funzionare infatti ho scelto una foto che si chiama DSC0004.JPG , quando salvo nel database il nome del file me lo riporta cos' comè e quindi è come se non mi legge la funzione cosa è che non va?

  4. #4
    Utente di HTML.it L'avatar di homerbit
    Registrato dal
    Dec 2005
    residenza
    Roma
    Messaggi
    1,380
    In effetti la funzione che tu hai aggiunto strtolower() che se non erro serve a trasformare in minuscolo tutte le le lettere non sembra funzionare infatti ho scelto una foto che si chiama DSC0004.JPG , quando salvo nel database il nome del file me lo riporta cos' comè e quindi è come se non mi legge la funzione cosa è che non va?
    infatti la funzione in questione, per come è utilizzata nel tuo codice non modifica l'estensione ma la trasforma in lower solo per confrontarla con il tuo array...nel db quindi viene salvato il nome originale (se non funzionasse non passeresti dal controllo!)
    If you think your users are idiots, only idiots will use it. DropBox

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    87
    in seguito ho utilizzato la funzione direttamente su $size e non andava lo stesso dopo tanti tentativi ho pensato che forse il problema era la dimensione del file perchè con una foto piccolina una volta ci sono riuscito, ma qualcosa non mi tornava ho modificato la variabile dimensione massima ma non era quella perchè il numero impostato era gia abbastanza allora una lampadina si è accesa sono andato nel file di configurazione php.ini ed ho cercato la parola
    size ho trovato:

    upload_max_filesize = 2M

    a quel punto tutto tornava.....

    adesso l'ho modificata così

    upload_max_filesize = 10M

    e tutto va che è una bellezza

    Grazie per l'aiuto ancora una volta, le opinioni di altre persone anche se non portano ad una soluzione, aiutano a ragionare e quindi ancora una volta grazie ragazzi

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 © 2024 vBulletin Solutions, Inc. All rights reserved.