upload e rename file

parsifal

Nuovo Utente
18 Gen 2014
26
0
0
salve a tutti, sto cercando di inserire una funzione per l'upload di immagini su un mio sito utilizzando questo codice:

HTML:
<html>
<body>

<form action="upload_photo.php" method="post"enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

e questa è la php associata al form:
PHP:
<?php
$nomelocale = $_SESSION['nomelocale'];
$_SESSION['nomelocale'] = $nomelocale;

$allowedExts = array("gif", "jpeg", "jpg", "png");
    $temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
||      ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] ==      "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . "  kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("photo/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "photo/" .$_FILES["file"]["name"]);
      echo "Stored in: " . "photo/" . $_FILES["file"]["name"];
    }
  }
else
  {
  echo "Invalid file";
  }
?>

questo codice compie l'ulpload del file correttamente solo che vorrei salvare il file con un nome differente.
in pratica se io sto caricando un file dal mio pc che si chiama download.jpg vorrei che nel sito fosse salvato con il valore di session associato.es: $nomelocale.jpg.
spero possiate aiutarmi, grazie
 
ciao, protesti vedere il manuale: http://it1.php.net/rename
e l'esempio
PHP:
<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

ora non sto dirti come fare un codice come hai detto tu.. ma io farei rinominare l'immagine con sha1($immagine).jpg cosi per non avere mai problemi che dopo se c'è un file esistente ti bloccasse il sistema.

tu prova,

io so poco di php e sto imparando ad fare copia /incolla.

ti saluto e buona serata.


EDIT- allo sha1 ($immagne aggiungi l'ora di inserimento.. ) per essersi sicuri che non vi siano dei doppioni.

ciao.
 
Ultima modifica:
ciao, vedi:
PHP:
echo "Stored in: " . "photo/" . $_FILES["file"]["name"];
rename("".$_FILES["file"]["name"]."", "".sha1($_FILES["file"]["name"]+$ora)."";

per l'ora non saprei .. chiedi ad altri ... ora non mi ricordo come si fa.
 

Discussioni simili