sostituzione di un file immagine da form

yok

Utente Attivo
3 Set 2009
62
0
0
Buongiorno!
Ho una galleria di immagini dove l'utente, una volta inserito il titolo della foto, una descrizione e la foto stessa può modificare questi parametri attraverso un form(che recupera i dati già presenti su DB).
Il mio problema è soltanto relativamente all'aggiornamento delle foto, cioè se io carico una nuova foto nella stessa posizione della vecchia(cartella "/foto/") non riesco ad eliminare quest'ultima dando alla nuova lo stesso nome della vecchia.

Questo è l'intero blocco di codice, mi sembrava di aver fatto tutto giusto ma non va. Se elimino la funzione file_exists la funzione unlink funziona, altrimenti mi dice che il file che voglio rinominare già esiste.

Grazie, ciao!

PHP:
	$tit0=$_POST["titolo0"];

	$tit1=$_POST["titolo1"];

	$desc0=$_POST["descrizione0"];	

	$desc1=$_POST["descrizione1"];

	$img0=$_FILES['foto0']['name'];

	$img1=$_FILES['foto1']['name'];

include("connessione.php");

$inserimento="UPDATE descrizioni SET titolo0='$tit0', titolo1='$tit1', descrizione0='$desc0', descrizione1='$desc1' WHERE id=0";

$query=mysql_query($inserimento);


if (file_exists($img0)) {

$old_file0="foto/foto0.jpg";
if (!unlink($old_file0)) {
	echo"impossibile eliminare foto0";
}
}

    if (!move_uploaded_file($_FILES['foto0']['tmp_name'], 'foto/'.$_FILES['foto0']['name'])) {
      echo "<p><b>ATTENZIONE!</b><br />Errore nel caricamento dell'immagine_0!!<br /><br /> File <b>non</b>caricato</p>";}

	$nome_nuovo0="foto0.jpg";
	$new0="foto/".$nome_nuovo0;

	$old0="foto/".$_FILES['foto0']['name'];
	rename($old0, $new0);

if (!$query) {
	die("Errore nella query $query: " . mysql_error()); 
}



mysql_close();

echo"inserimento dati avvenuto";
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
dovresti stamparti il valore di $img0, perché magari il valore corrisponde veramente ad un file che non c'è.
 

yok

Utente Attivo
3 Set 2009
62
0
0
ciao Eliox,
il file $img0 me lo riconosce, infatti me lo stampa, ciò che non riesce a fare è il passo successivo, eliminare la vecchia foto tramite unlink.

Quindi in sostanza, la parte che non funziona è solo questa:

if (file_exists($img0)) {

$old_file0="foto/foto0.jpg";
if (!unlink($old_file0)) {
echo"impossibile eliminare foto0";
}
}
 
Ultima modifica:

yok

Utente Attivo
3 Set 2009
62
0
0
ciao Alessandrro,
volevo testare questo script su di una sola immagine per poi poterlo inserire in un contesto più ampio. Però, finchè non riesco a farlo su di una sola foto non posso andare avanti
 

yok

Utente Attivo
3 Set 2009
62
0
0
domanda: ma file_exists funziona anche se deve controllare l'esistenza di un file immagine?
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
prova ad eliminare il controllo su unlink:
PHP:
if (file_exists($img0)) {
$old_file0="foto/foto0.jpg";
unlink($old_file0);
}
 

yok

Utente Attivo
3 Set 2009
62
0
0
l'ho tolto ma il problema rimane:

"Warning: rename(foto/8531A_87175_60205.jpg,foto/foto0.jpg) [function.rename]: File exists in C:\wamp\www\gallery_2\visual_update.php on line 40"

In buona sostanza mi riconosce l'esistenza del nuovo file img ma in tutti i modi si rifiuta di cancelare il vecchio foto0.jpg.
 

yok

Utente Attivo
3 Set 2009
62
0
0
Ciao!
è passato il 2009, auguri a tutti, siamo nel 2010 ma il mio problema di unlink persiste eroico e rompipalle.

Dunque vado al nocciolo. Questo passaggio viene eseguito correttamente:

PHP:
$old_file0="foto/foto0.jpg";
$old_file0_thumb="thumbs/foto/foto0.jpg";
unlink($old_file0);
unlink($old_file0_thumb);

quest'altro, che a me pare corretto e bello, non viene eseguito nemmeno con le intimidazioni:

PHP:
if (file_exists($_FILES['foto00']['name'])) {

$old_file0="foto/foto0.jpg";
$old_file0_thumb="thumbs/foto/foto0.jpg";
unlink($old_file0)
unlink($old_file0_thumb);}

qualcuno sa perchè mai?

Thanks!
 

yok

Utente Attivo
3 Set 2009
62
0
0
Allora Ale, ho controllato con var_dump e, con un'immagine di nome "cornucopia_A.jpg" mi restituisce il valore:

string(16)"cornucopia_A.jpg"

corretto, no?

Il punto e virgola mancante me lo sono dimenticato in fase di copiatura, nello script originale c'è.

Grazie e alla prossima
 

yok

Utente Attivo
3 Set 2009
62
0
0
ok, ho risolto!

il trucco sta nel sostituire "file_exists" con "is uploaded_file", a quel punto viene eseguito l'IF.

Grazie a tutti degli aiuti
Ciao!
 

yok

Utente Attivo
3 Set 2009
62
0
0
Bravo! avevo omesso di scrivere che ho applicato is_uploaded_file con il file temporaneo, di conseguenza lo script funzionante è ora:

PHP:
if (is_uploaded_file($_FILES['foto0']['tmp_name'])) {

$old_file0="foto/foto0.jpg";

if(!unlink($old_file0)){
	echo"file0 NON cancellato";
}
else
{
	echo"file0 cancellato!!";
}

si sa mai che possa tornare utile utile a qualche altro principiante....

Ciao Alessandro, alla prossima, perchè sicuramente ci sarà una prossima volta.
 
Discussioni simili
Autore Titolo Forum Risposte Data
T sostituzione testo in un file txt. PHP 4
Monital Sostituzione in file txt PHP 8
E Sostituzione Elemento Html PHP 3
I PROBLEMA: Sostituzione sito XAMPP E-Commerce 0
C input in sostituzione della select PHP 2
G Sostituzione NVR IP Cam e Videosorveglianza 1
A Sostituzione telecamera h 264 con una telecamera professionale IP Cam e Videosorveglianza 0
felino Alcatel POP4 Plus: sostituzione batteria Smartphone e tablet 0
C [PHP] sostituzione di alcune lettere nelle stringheo PHP 1
G [PHP] Sostituzione caratteri PHP 2
L sostituzione contenuto diversi div con document.getelementbyid Javascript 1
JackIlPazzo Sostituzione sbagliata in array PHP 1
I sostituzione registrazione PHP 1
X Problema di sostituzione tramite query sql MySQL 5
I Menu senza refresh - sostituzione vecchi frame HTML jQuery 2
P Problema caricamento/sostituzione immagini galleria php-jquery jQuery 2
Frank10 Sostituzione ram = Schermo Nero Hardware 1
T PHP - Sostituzione immagine dopo un certo tempo PHP 4
T javascript controllo campo e sostituzione lettere... Javascript 3
P Sostituzione stringhe sulla base di una tabella di conversione MySQL 2
M funzione di ricerca e sostituzione PHP 0
C upload baol e sostituzione immagini in db access Classic ASP 1
G Sostituzione di document.all Javascript 1
S Php - Sostituzione Stringhe PHP 1
E fpdf salvare e aprire il file PHP 4
I asp | includere un file, indirizzo depositato in un db Classic ASP 0
felino [Windows 10] Scompare icone, file e collegamenti sul desktop Windows e Software 0
S passare un valore da un form a un file .php con metodo post PHP 4
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
G file CSS contenente variabili HTML e CSS 1
M Creare traccia di download file sul server HTML e CSS 2
I elimina file PHP 1
I cerca file sottocartella unlink file PHP 0
I sessione username scarica file PHP 1
S Aggiornare percorso file collegati MS Access 0
I lista file sottocartella elimina file PHP 3
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
I visualizza file sottocartella elimina singolo file PHP 1
I caricamento file in sottocartella nome utente PHP 3
I cartella sottocartella apri o scarica file pdf PHP 1
K Sfondo nuovo file Photoshop 0
C Wp-admin a file php WordPress 5
G Importazione file .sql Web Server 0
csi Inviare file jpg in locale alla stampante con php PHP 0
otto9due Proteggere una cartella e file con password tramite .htaccess e .htpasswd Web Server 0
MarcoGrazia HTML5 <picture> e i file source HTML e CSS 2
MarcoGrazia criptare un file PHP 2
U Link a doppio file PHP PHP 0
U Link a pagina ed esecuzione file PHP 0

Discussioni simili