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

    Modificare Il Nome Di Un Immagine

    Piccolo problema.
    Ho costruito uno script che mentre carica un immagine ne crea anche la relativa miniatura.
    Funziona correttamente, le immagini "grandi" vengono salvate in una cartella e le miniature in altra cartella (con lo stesso nome dell'immagine grande).
    E quì nasce il problema, io vorrei aggiungere una desinenza al nome della miniatura.
    Per esempio al posto del nome "miafoto.jpg" dovrebbe diventare "miafoto_s.jpg" (in pratica aggiungere "_s" al nome).
    questa è la riga di codice che salva l'immagine in cartella "miniature":

    Codice PHP:
    // Salvo l'immagine ridimensionata
    imagejpeg($thumb$_SERVER['DOCUMENT_ROOT'].'/AAA GALLERIA IMMAGINI/thumb/'.$_FILES['userfile']['name'], 75); 
    Ho provato a manipolare la parte finale della riga:
    .$_FILES['userfile']['name']

    senza risultato .
    Esiste un modo per modificare il nome del file durante il caricamento ?
    :master:
    Due cose sono infinite: l’universo e la stupidità dell’essere umano, ma nel caso dell’universo non sono tanto sicuro.

  2. #2
    Codice PHP:
    if(is_uploaded_file($_FILES['userfile']['tmp_name']))
    {
    $_FILES['userfile']['tmp_name']="nuovo_nome.jpg";



  3. #3
    Posto il codice completo del file che salva le immagini:
    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Galleria foto</title>
    </head>

    <body>

    <?php


    if ($_FILES['userfile']['size'] > 1900000000000)
    {
        echo 
    "immagine troppo grande";
        exit;
    }

    list(
    $width$height) = getimagesize($_FILES['userfile']['tmp_name']);
    if ((
    $width 5500) || ($height 5000)) 
    {
        echo 
    "devi ridimensionare l'immagine, è troppo grande";
        exit;    
    }


      if (
    file_exists('foto/'.$_FILES['userfile']['name']))
          
     {
        echo 
    "File già esistente sul server. Rinominarlo e riprovare.";
        exit;
    }

      

    //creo le thumb
        
        // Ottengo le informazioni sull'immagine originale
    list($width$height$type$attr) = getimagesize($_FILES['userfile']['tmp_name']);

    // Creo la versione 120*90 dell'immagine (thumbnail)
    $thumb imagecreatetruecolor(12090);
    $source imagecreatefromjpeg($_FILES['userfile']['tmp_name']);
    imagecopyresized($thumb$source000012090$width$height);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb$_SERVER['DOCUMENT_ROOT'].'/AAA GALLERIA IMMAGINI/thumb/'.$_FILES['userfile']['name'], 75);



      
    // Sposto l'immagine grande nella cartella da me desiderata
       
    move_uploaded_file($_FILES['userfile']['tmp_name'], 'foto/'.$_FILES['userfile']['name']);
    ?>        

    </body>
    </html>
    La riga interessata è la penultima



    if(is_uploaded_file($_FILES['userfile']['tmp_name']))
    {
    $_FILES['userfile']['tmp_name']="nuovo_nome.jpg";

    }
    Non ho capito dove inserirla, anche perchè il nuovo nome è dato dal nome di caricamento della foto più _s .
    Due cose sono infinite: l’universo e la stupidità dell’essere umano, ma nel caso dell’universo non sono tanto sicuro.

  4. #4
    Nessuno sa come fare?
    Due cose sono infinite: l’universo e la stupidità dell’essere umano, ma nel caso dell’universo non sono tanto sicuro.

  5. #5
    Il nome originale del file e':
    Codice PHP:
    $filename $_FILES['userfile']['name']; 
    lo modifichi per creare il nome del thumbnail:
    Codice PHP:
    $thumbname preg_replace('/\.jpg$/''_s.jpg'$filename); 
    quindi usi $thumbname quando salvi la jpg del thumbnail, e $filename quando sposti l'originale.

  6. #6
    Codice PHP:
    <?php

    if ($_FILES['userfile']['size'] > 1900000000000)
    {
        echo 
    "immagine troppo grande";
        exit;
    }

    list(
    $width$height) = getimagesize($_FILES['userfile']['tmp_name']);
    if ((
    $width 5500) || ($height 5000)) 
    {
        echo 
    "devi ridimensionare l'immagine, è troppo grande";
        exit;
        
    }

    //recupero i dati dal form form.php
    //$userfile=$_POST['userfile'];

     

     
       
    if (file_exists('foto/'.$_FILES['userfile']['name']))
          
     {
        echo 
    "File già esistente sul server. Rinominarlo e riprovare.";
        exit;
    }

      


        

    //creo le thumb
        
        // Ottengo le informazioni sull'immagine originale
    list($width$height$type$attr) = getimagesize($_FILES['userfile']['tmp_name']);

    // Creo la versione 120*90 dell'immagine (thumbnail)
    $thumb imagecreatetruecolor(12090);
    $source imagecreatefromjpeg($_FILES['userfile']['tmp_name']);
    imagecopyresized($thumb$source000012090$width$height);



    $filename $_FILES['userfile']['name'];
    $thumbname preg_replace('/.jpg$/''_s.jpg'$filename);


    // Salvo l'immagine ridimensionata
    imagejpeg($thumb$_SERVER['DOCUMENT_ROOT'].'/AAA GALLERIA IMMAGINI/thumb/'.$thumbname75);




      
    // Sposto l'immagine grande nella cartella da me desiderata
       
    move_uploaded_file($_FILES['userfile']['tmp_name'], 'foto/'.$_FILES['userfile']['name']);
    ?>
    Ho modificato le righe in questo modo
    Codice PHP:
    $filename $_FILES['userfile']['name'];
    $thumbname preg_replace('/.jpg$/''_s.jpg'$filename);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb$_SERVER['DOCUMENT_ROOT'].'/AAA GALLERIA IMMAGINI/thumb/'.$thumbname75); 
    ma non cambia nulla.
    molto probabilmente non ho capito cosa intendevi. :master:
    Due cose sono infinite: l’universo e la stupidità dell’essere umano, ma nel caso dell’universo non sono tanto sicuro.

  7. #7
    Come non cambia niente? A parte il fatto che mi dimentico sempre che questo forum si mangia i backslash, la regexp dovrebbe funzionare lo stesso e aggiungere '_s' alla fine del nome del file. Prova a stampare $filename e $thumbname per verifica, mi sembra strano che non funzioni.

  8. #8
    Modificata cosi' e funziona:


    Codice PHP:
    $filename $_FILES['userfile']['name'];
    $thumbname str_replace('.jpg''_s.jpg'$filename);

    // Salvo l'immagine ridimensionata
    imagejpeg($thumb$_SERVER['DOCUMENT_ROOT'].'/AAA GALLERIA IMMAGINI/thumb/'.$thumbname75); 
    Grazie per l'aiuto

    Due cose sono infinite: l’universo e la stupidità dell’essere umano, ma nel caso dell’universo non sono tanto sicuro.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    2
    Ho un problema simile!
    Si tratta di un videoserver che uso come webcam,
    il videoserver mi invia in ftp l'immagine jpg
    nella cartella /dataodierna
    e deposita l'immagine con il nome "oradelloscatto.jpg"
    il codice per visualizzare l'immagine è questo
    Codice PHP:
    <?PHP

    $DirPath
    =gmdate("n_j_Y/");

    $names = array();

    if ((
    $handle=opendir($DirPath)))
      {
      while (
    $node readdir($handle))
        {
        if(!
    is_dir($DirPath.$node))
            {
            if(
    strrpos($node,".jpg"))
                {
                if (
    filesize($DirPath.$node) > 5000)  // skip black images
                  
    {
                  
    $names[] = $node;
                  }
               }
            }
        }
      }  
    rsort($names);
    $node $names[0];
    $caption substr($node,0,2).":".substr($node,3,2);
    $asdate str_replace("/","",$DirPath);
    $asdate str_replace("_","/",$asdate);

    $html "<html><head><title>Webcam</title></head><body>
    <img src=\"
    $DirPath$node\">
    <center><font color=\"blue\">[b]<a href=\"http://www.sito" 
    target=\"_top\">data_".$asdate."_ora:".$caption.":GMT 0</a></font>
    <a href=\"archive.php\" target=\"_top\">Archives</a>
    </body></html>"
    ;
    echo 
    $html;
    ?>
    Quando visualizzo il file PHP
    come posso creare una copia (salvare e sovrascrivere con lo stesso nome)
    dell'mmagine <img src=\"$DirPath$node\">

    Siate pazienti! Non conosco il PHP mi limito al copia incolla
    Grazie!

  10. #10

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.