[PHP] Sovrascrive immagine

Riccardo93

Nuovo Utente
19 Giu 2017
1
0
1
30
Buon Pomeriggio a tutti, sono nuovo nel Forum.. Spero che mi possiate aiutare. Ho questo problema:
ho creato un codice php per upload di immagine sul mio sito, solo che se un utente pubblica un'immagine con nome image.jpj ed un altro utente ne pubblica un altra che abbia lo stesso nome, quest'ultima sovrascrive la seconda e si vedono due immagini uguali... questo è il codice

PHP:
<?php
session_start();
include 'connessione.php';
$file_temp = $_FILES['userfile']['name'];
$file_loc = $_FILES['userfile']['tmp_name'];
$percorso="upload/";
$pc = 0.6;
@list($width, $height, $type, $attr) = @getimagesize($file_loc);
$new_width = $width * $pc;
$new_height = $height * $pc;
$thumb = @imagecreatetruecolor($new_width, $new_height);
$source = @imagecreatefromjpeg($file_loc);
@imagecopyresized($thumb , $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
@imagejpeg($thumb, $file_loc, 85);
$text_area = $_POST[ 'testo' ];
$nome = $_COOKIE['login'];
$text_area = addslashes($text_area);
$new_file_name = strtolower($file_temp);
$final_file=str_replace(' ','-',$new_file_name);

$ext_ok = @array('doc', 'docx', 'pdf', 'GIF', 'WBMP', 'XPM', 'FreeType', 'png');
$temp = @explode('.', $_FILES['userfile']['name']);
$ext = @end($temp);
if(file_exists($percorso)) {
$percorso = str_replace(".",time().".",$percorso);
}
if (!in_array($ext, $ext_ok)) {
if(move_uploaded_file($file_loc,$percorso.$final_file));

if ( strlen( $text_area ) >= 1 && strlen( $file_loc ) >= 1 ) {
$sql="INSERT INTO Post (nome_utente, testo_post, utente_foto, data_post) VALUES('$nome','$text_area','$final_file', now())";
$result = mysql_query( $sql );
if ( !$result ) {
die( 'Errore query: ' . mysql_error() );
}
$no_result = mysql_num_rows( $result );
mysql_close();
$no_result = 1;
if ( $no_result = 1 ) {
header('Location: home');
exit;
}
} else {
?>
<script>
alert('Per pubblicare devi inserire una Descrizione e una Foto.');
window.location.href='home';
</script>
<?php
}
} else {
?>
<script>
alert('Estensione non ammessa');
window.location.href='home';
</script>
<?php
}
?>
 
Ultima modifica di un moderatore:
ciao
puoi usare la funzione file_exists()
una volta verificato che sia stato inserito un file e che sia ammesso puoi verificare se il file esiste gia
PHP:
//...
if(file_exists($nome_file)){//attento hai percorsi
    echo "cambia nome"; //o altro alert
}
//...
oppure, sempre dopo le verifiche, generare tu il nome del file che deve essere caricato in modo da non avere sovrapposizioni
ad esempio visto che hai ha disposizione il nome dell'utente ($nome) potresti con una select verificare quante foto ha caricato l'utente
PHP:
//....
$quante_foto=mysqli_num_rows($res)+1;
$nome_file_da_caricare=$nome.$quante_foto.$estenzione;
//....

p.s.
quando inserisci del codice usa gli appositi bccode e non sbrodolarlo
 

Discussioni simili