Visualizzazione dei risultati da 1 a 6 su 6

Discussione: File.txt

  1. #1

    File.txt

    Come posso fare per far si che, quando venga caricata un'immagine/foto, da seguente script di Upload, crei anche un file.txt con nome identico al nome del file caricato e che, inoltre vada a crearsi (ad esempio) nella cartella: "txt"?

    Codice PHP:
    <?php
        
    function CreateThumb($filetype$srcdir$dstdir$name$tw$tc)
        {
        
    // todo: consider refactoring
        
    $src "$srcdir/$name";
        
    $dst "$dstdir/$name";

        switch (
    $filetype) {
            case 
    'image/jpg':
            case 
    'image/jpeg':
                
    $srcImg imagecreatefromjpeg($src);
                break;
            case 
    'image/png':
                
    $srcImg imagecreatefrompng($src);
                break;
            case 
    'image/gif':
                
    $srcImg imagecreatefromgif($src);
                break;
        }

        
    $origWidth imagesx($srcImg);
        
    $origHeight imagesy($srcImg);

        
    $ratio $origWidth $tw;
        
    $th $origHeight $ratio;

        
    $thumbImg imagecreatetruecolor($tw$th);
        
    imagecopyresized($thumbImg$srcImg0000$tw$th$origWidth$origHeight);

        switch (
    $filetype) {
            case 
    'image/jpg':
            case 
    'image/jpeg':
                
    $res imagejpeg($thumbImg$dst$tc);
                break;
            case 
    'image/png':
                
    $res imagepng($thumbImg$dst);
                break;
            case 
    'image/gif':
                
    $res imagegif($thumbImg$dst);
                break;
        }

        return 
    $res;
        }

    function 
    filtranome($name$filetype)
    {
        
    // todo: consider refactoring
        
    $extension explode('/'$filetype);
        
    // qui filtri con varie funzioni
        
    $nuovonome $name;
        
    $nuovonome str_replace(array(' ''.',','), '_'$nuovonome); // elimino alcuni caratteri
        
    $nuovonome strtolower($nuovonome); // tutto in minuscolo
        
    $nuovonome time() . '_' $nuovonome '.' 'jpeg';
        return 
    $nuovonome;
    }

    // controllo che non ci siano stati errori nell'upload (codice = 0)
    if ($_FILES['uploadfile']['error'] == 0) {
        
    $acceptedTypes = array('image/jpeg','image/png','image/gif','image/jpg','image/bmp','image/png');
        
    // upload ok
        // controllo formato
        
    $filetype $_FILES['uploadfile']['type'];
        if (!
    in_array($filetype$acceptedTypes)) {
            die(
    "Formato file non valido");
        }
        
    // copio il file dalla cartella temporanea a quella di destinazione mantenendo il nome originale
        
    copy($_FILES['uploadfile']['tmp_name'], "file_caricati/" filtranome($_FILES['uploadfile']['name'], $filetype)) or die("Impossibile caricare il file");
        
    // upload terminato, stampo alcune info sul file
        
    echo "
    [b]Upload terminato con successo[/b]
    Le Informazioni riguardanti il File che hai appena caricato sono:

    "
    ;
        echo 
    "Nome file originale: ".$_FILES['uploadfile']['name']."
    "
    ;
        echo 
    "Nome file caricato: ".filtranome($_FILES['uploadfile']['name'], $filetype)."
    "
    ;
        echo 
    "Dimensione file: ".$_FILES['uploadfile']['size']."
    "
    ;
        echo 
    "Tipo MIME file: ".$_FILES['uploadfile']['type'];

    } else {
        
    // controllo il tipo di errore
        
    if ($_FILES['uploadfile']['error'] == 2) {
            
    // errore, file troppo grande (> 1MB)
            
    die("Errore, file troppo grande: il massimo consentito è 1MB");
        } else {
            
    // errore generico
            
    die("Errore generico");
        }
    }

    $srcdir "file_caricati";
    $dstdir "miniature";
    $name filtranome($_FILES['uploadfile']['name'],$filetype);

    // dimensioni della miniatura da creare
    $tw 400// larghezza
    // livello di compressione della miniatura
    $tc 90;

    $res CreateThumb($filetype$srcdir$dstdir$name$tw$tc);
    if (!
    $res) die("Impossibile salvare la miniatura"); 
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    in coda a tutto aggiungi:

    Codice PHP:
    $folder 'relative/path/to/';
    $filename pathinfo($namePATHINFO_FILENAME);
    $contenuto ''// il contenuto che vuoi mettere dentro...
    file_put_contents($folder.$filename$contenuto); 

  3. #3
    Perfetto, anche se con il tuo codice il file non veniva letto come txt.
    L'ho cambiato cosi:

    Codice PHP:
    $filename pathinfo($namePATHINFO_FILENAME);
    $contenuto '$name'// contenuto
    file_put_contents($filename.".txt"$contenuto); 
    Soltanto che ci sono due problemi:
    1. All'interno del file.txt il contenuto è: "$name" e non il nome del file;
    2. Non viene creato all'interno della cartella "txt/".

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    oops... ho dimenticato ".txt" finale, quindi:

    Codice PHP:
    $folder 'txt/'// il percorso è relativo
    $filename pathinfo($namePATHINFO_FILENAME);
    $dest $folder.$filename.'.txt'// unisci percorso+nomefile+estensione
    $contenuto $name// contenuto (senza apici in questo caso)
    file_put_contents($dest$contenuto); 
    crea già la cartella e con i permessi in scrittura sufficienti

    prova...

  5. #5
    Grazie Mille Eiyen!
    Utilissimo come sempre!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Ciao!!

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.