problema con modifica nome in upload file

Ciao

Carico un'immagine con un form che viene ridimensionata 2 volte (per diverse esigenze) e inserisco i dati nel db:

.....

<form name="edit_ima" action="protetta.php" enctype="multipart/form-data" method="post">
<input type="file" name="imagefile"><br />
<input type="submit" name="Submit" value="Submit">
</form>

....

$nomeima = @addslashes($_FILES['imagefile']['name']);
    $path = $pathuser_foto . stripslashes($nomeima);
    $tipo = @addslashes($_FILES['imagefile']['type']); 


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


 // creo ridimensionamento
   @makeresize($pathuser_foto,$path,$nomeima,$tipo); 
    // creo la miniatura
    @makeThumb($pathuser_thumb,$path,$nomeima,$tipo);

Lo script funziona bene.

Ma avrei un'altra necessità.

Aggiungere al nome dell'immagine caricata il nome dell'utente (sia nel db che al momento della creazione delle immagini ridimensionate.

Ho fatto così:

$nomeima = $user."_".$nomeima

che ho aggiunta prima del ridimensionamento.

Le immagini vengono create con il nome dell'utente anteposto (il contrario mi dava problemi con l'estensione)

ma nella prima cartella di destinazione me ne ritrovo 2. Una con il nome aggiunto e una senza (non visualizzabile)

che penso sia l'immagine temporanea.

Come risolvo il problema facendola eliminare automaticamente come avviene regolarmente senza l'aggiunta del nome utente (senza la mia ultima modifica insomma)?

Grazie

inviato 6 anni fa
frankphp
X 0 X

niente?

risposto 6 anni fa
frankphp
X 0 X

Non ho capito dove sta il problema...

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Non ho capito dove sta il problema...

Come dicevo. Prima della mia modifica veniva creata un file temporaneo e poi venivano create le 2 immagini temporanee e l'immagine temporanea veniva cancellata. Adesso nella prima cartella ($pathuser_foto) ne trovo una in più. Quindi è evidente che qualcosa non va per il verso giusto.

Grazie

risposto 6 anni fa
frankphp
X 0 X

Salva direttamente il file con il nuovo nome invece di salvarlo nella cartella temporanea e poi fare una copia...non può essere una soluzione?

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Salva direttamente il file con il nuovo nome invece di salvarlo nella cartella temporanea e poi fare una copia...non può essere una soluzione?

sinceramente non lo so e non ho provato:

il codice per la creazione e la copia del file immagine temporanea :

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

fa parte della procedura che ho utilizzato anche per altri progetti; adesso non so se cancellando quella riga

tutto funziona lo stesso.

Appena possibile provo. Grazie

risposto 6 anni fa
frankphp
X 0 X

alla fine ho dovuto fare così:

$t=time();
.....

  @copy ($_FILES['imagefile']['tmp_name'], $carfoto_user . $nome);

  $nomenew = $t.$nome;
   
     // creo ridimensionamento
   @makeresize($carfoto_user,$path,$nomenew,$tipo); 
    // creo la miniatura
    @makeThumb($carthumb_user,$path,$nomenew,$tipo);
    
    unlink($carfoto_user.$nome);

il nuovo nome con l'aggiunta del Unix timestamp mi è utile per  evitare che ci possa essere confusione tra 2 immagini differenti che hanno lo stesso nome.

Alla fine cancello l'immagine temporanea creata per l'operazione.

Sembra che vada bene.

Grazie

risposto 6 anni fa
frankphp
X 0 X

Ottimo così  :)

Ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda