Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    32

    [PHP] Upload di immagini e cambiamento del nome del file

    Come faccio a preservare il tipo di immagine se voglio cambiare il nome del file? Allo stato attuale uso questo codice per l'upload:

    //Selezione del file
    <form enctype = "multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="post">

    Immagine 1: <input name='immagine1' type='file' value='$file'>


    //Upload
    $filename = $HTTP_POST_FILES[immagine1]['tmp_name'];
    if (is_uploaded_file($filename))
    move_uploaded_file($filename, "img/"."$id".".jpg");

    E se l'immagine non è in formato jpg? Come faccio a rinominare il file senza dover rinserire nuovamente il tipo?

    Grazie

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    tramite la funzione getimagesize puoi risalire al tipo di immagine, e di conseguenza usare l'estensione corretta.


    think simple think ringo

  3. #3
    Guarda io uso sempre una cosa del genere, creata da me:

    $Tmp_name = $_FILES['nomeCampoFile']['tmp_name'];
    $Type = $_FILES['nomeCampoFile']['type'];
    $Imm = $_FILES['nomeCampoFile']['name'];
    $Size = $_FILES['nomeCampoFile']['size'];

    $mime_list=array(".gif"=>"image/gif",".jpg"=>"image/jpeg",".jpg"=>"image/pjpeg");

    $filename=basename($Imm);
    $file_extension = substr($filename,strpos($filename,"."));
    in_array($file_extension,array_keys($mime_list)) ? $permitted_type="SI" : $permitted_type = "NO";

    if (is_uploaded_file($Tmp_name) && ($permitted_type=="SI")) {

    $Imm='';
    $nome_file="nuovoNome".$file_extension;

    move_uploaded_file($Tmp_name,"../cartellaDestinazione/".$nome_file."") or die("Impossibile spostare il file, controlla l'esistenza o i permessi della directory dove fare l'upload1.");
    chmod("../cartellaDestinazione/$nome_file",0755);


    Prima prendo tutti i valori del campo del form, poi creo un'array con i tipi permessi e faccio un controllo sull'estensione. Poi verifico che sia stato fatto l'upload nella cartella temporanea dopodichè gli cambio il nome mantenendo l'estensione, l'ho spostato nella cartella di destinazione e ho modificato i permessi della stessa.

    Sono stato chiaro?

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.