Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Problema script php e upload immagini
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • G
      gabriele1986 User Attivo • 9 dic 2009, 16:56 ultima modifica di

      Problema script php e upload immagini

      Ciao a tutti sono tronato ho nuovamente un problema questa volta con il file upload.php, che fà correttamente l'upload del file crea la cartella desiderata ma l'immagine non viene inserita nella cartella creata:

      Codice db.php
      [php]<?php
      // Connessione al DB
      $host =
      $user =
      $pass =
      $data =
      $cn = @mysql_connect($host,$user,$pass) or die (mysql_error());
      $sl = @mysql_select_db($data) or die (mysql_error());

      // Cartella fisica in cui andremo ad inserire le immagini.
      // Va creata nella stessa posizione dove si trovano i file .php

      $path_img = mkdir("upload",0700); // creo la cartella upload e regolo i permessi
      ?>[/php]

      Ora il codice di upload.php

      [php]
      <?php
      if(isset($_POST['Submit'])){
      // faccio un po' di inclusioni...
      @include 'funzioni/miniature.php';

      @require 'funzioni/db.php';

      // Creo una array con i formati accettati
      $tipi_consentiti = array("image/gif","image/jpeg","image/png");

      // verifico che il formato del file sia tra quelli accettati
      if (@in_array($_FILES['imagefile']['type'], $tipi_consentiti)){
      // copio il file nella cartella delle immagini
      @copy ($_FILES['imagefile']['tmp_name'], $path_img . $_FILES['imagefile']['name']);

      // recupero i dati dal form
      $titolo = @addslashes($_POST['titolo']);
      $descrizione = @addslashes($_POST['descrizione']);
      $nome = @addslashes($_FILES['imagefile']['name']);
      $path = $path_img . stripslashes($nome);
      $tipo = @addslashes($_FILES['imagefile']['type']);
      
      // creo la miniatura
      @makeThumb($path_img,$path,$nome,$tipo);
      
      // aggiorno il database
      $query = "INSERT INTO images (Titolo,Descrizione,Nome,Tipo) VALUES('$titolo','$descrizione','$nome','$tipo')";
      $res = @mysql_query($query) or die (mysql_error());
      @mysql_close($cn);
      
      // Stampo a video un po' di informazioni
      echo "Nome: ".$_FILES['imagefile']['name']."<br />"; 
      echo "Dimensione: ".$_FILES['imagefile']."<br />"; 
      echo "Tipo: ".$_FILES['imagefile']['type']."<br />"; 
      echo "Copia eseguita con successo."; 
      

      }else{
      // stampo un messaggio di errore nel caso in cui il file sia di un formato non consentito
      echo "Impossibile eseguire l'upload.";
      }
      }
      ?>
      [/php]

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
        Caricamento altri post
        Rispondi
        • Topic risposta
        Effettua l'accesso per rispondere
        • Da Vecchi a Nuovi
        • Da Nuovi a Vecchi
        • Più Voti
         

      • T
        thedarkita ModSenior • 9 dic 2009, 20:05 ultima modifica di

        Ciao gabriele1986,

        intanto nella funzione mkdir dovresti impostare i permessi della cartella a 777.
        Dopo verifica che i permessi siano realmente impostati a 777, in quanto a seconda della configurazione del server impostare i permessi delle cartelle con questa procedura potrebbe non essere possibile.
        In seguito utilizzi la variabile che non contiene il percorso di upload bensi il valore restituito dalla funzione mkdir, quindi tenti di copiare nella cartella sbagliata.

        Ti sconsiglio l'utilizzo delle @ che ti nascondono gli errori e ovviamente non riesci a capire dove sono, ultimamente usarle sta diventando una moda, niente di più sbagliato...

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • G
          gabriele1986 User Attivo • 15 dic 2009, 15:21 ultima modifica di

          Soto tornato ho provato sostituendo

          
          $path_img = mkdir("upload",0700);
          
          $path_img = "c://programmi/EASYPHP35/sito_personale/portfolio/upload"
          
          
          

          Ma nemmeno così le immagini sono visibili

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            thedarkita ModSenior • 15 dic 2009, 15:22 ultima modifica di

            Devi fare:
            [php]
            $path_img = mkdir("upload",0777);

            [/php]

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • G
              gabriele1986 User Attivo • 16 dic 2009, 10:55 ultima modifica di

              Ho riprovato come hai detto tu ma non mi visualzza le immagini l'upload avviene correttamente ma anzichè caricare l'immagine nella cartella creata viene caricata nella cartella principale del sito web.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                thedarkita ModSenior • 16 dic 2009, 11:32 ultima modifica di

                Devi modificare il percorso di destinazione della funzione copy.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • G
                  gabriele1986 User Attivo • 16 dic 2009, 19:58 ultima modifica di

                  Grazie ora funziona in parte ma non crea le miniature.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    thedarkita ModSenior • 16 dic 2009, 19:59 ultima modifica di

                    Stai passando il percorso corretto dell'immagine alla funzione makeThumb?

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • G
                      gabriele1986 User Attivo • 16 dic 2009, 21:37 ultima modifica di

                      Ecco il codice della funzione per le migniature

                      
                      <?php
                      function makeThumb($path_img,$pic,$n,$t){
                        @list($width, $height, $type, $attr) = @getimagesize($pic);
                        $max_w = 100;
                        $max_h = 200;
                        $ratio = @min($max_w/$width,$max_h/$height);
                      
                        // Verifico che l'immagine originale sia più grande delle dimensioni massime 100*100pxl
                        if ($ratio < 1){
                          // Individuo le nuove dimensioni da assegnare all'immagine
                          $w = @floor($ratio*$width);
                          $h = @floor($ratio*$height);
                      
                          // creo una nuova immagine con le dimensioni appena calcolate
                          $thumb = @imagecreatetruecolor($w,$h);
                          if ($t == 'image/jpeg'){$temp = @imagecreatefromjpeg($pic);}
                          elseif ($t == 'image/gif'){$temp = @imagecreatefromgif($pic);}
                          elseif ($t == 'image/png'){$temp = @imagecreatefrompng($pic);}
                      
                          // ridimensiono l'originale e salvo nella cartella di destinazione
                          @imagecopyresized($thumb,$temp,0,0,0,0,$w,$h,$width,$height);
                          if ($t == 'image/jpeg'){@imagejpeg($thumb,"$path_img/tb_".$n, 75);}
                          elseif ($t == 'image/gif'){@imagegif($thumb,"$path_img/tb_".$n, 75);}
                          elseif ($t == 'image/png'){@imagepng($thumb,"$path_img/tb_".$n, 75);}
                        }
                      }
                      ?>
                      
                      
                      
                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        thedarkita ModSenior • 16 dic 2009, 21:44 ultima modifica di

                        Nella variabile $pic hai controllato che ti arrivi il percorso corretto? Che con il file che richiama la funzione, secondo me, hai fatto un pò di confusione.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • G
                          gabriele1986 User Attivo • 16 dic 2009, 22:13 ultima modifica di

                          Si arriva il percorso corretto lo script funzionava poi da un momento all'altro a smesso di visualizarmi le miniature.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            thedarkita ModSenior • 17 dic 2009, 10:14 ultima modifica di

                            Magari togli tutte le @ che nascondono gli errori, cosi vediamo che errori genera e facciamo prima. 🙂

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • G
                              gabriele1986 User Attivo • 17 dic 2009, 13:02 ultima modifica di

                              Tolte tutte le @ non genere nessun errore ma non mostra le miniature che non sia colpa di easyphp?

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti