Upload immagine

ahmadpour

Utente Attivo
10 Nov 2013
35
0
0
Ciao ho creato un upload di immagine che quando uno carica l'immagine gli appare sullo schermo e viene anche dentro una cartella. Nel database ho creato un altra colonna che si chiama image, li mi viene l'url dell'immagine. Il problema é che quando carico un immagine mi viene l'url su una nuova riga e non dove c'é l'utente.
Vorrei che l'url dell' immagine me lo metta sulla colonna image in base all' utente che l'ha caricata, e che quando l'utente cambia immagine l'url viene sostituito con quello della nuova immagine. Questo é il codice dell' upload:


HTML:
<?php 

if (mysql_query ($query, mysql_connect($host, $uname, $psw))) {
if (isset($_POST['upload'])) { 


 
	$user = 'users/'. $login->get_username(). "/profile_image";  
	mkdir("$user",0777); 
	
		
	$pathAndName = "$user/{$_FILES['img']['name']}"; 

    $query="INSERT INTO users (image) VALUES('$pathAndName',now())";
    if (move_uploaded_file($_FILES["img"]["tmp_name"], $pathAndName)) { 
		
		echo "<img src='$user/{$_FILES['img']['name']}' height='150' width='150' /><br>\n";
		mysql_query("INSERT INTO `users` (`image`) VALUES('$pathAndName')") or die(mysql_error());

    } else { 
        echo "Error"; 
    } 

} 

}

?>  


<form enctype='multipart/form-data' method='post' action='<?php echo $_SERVER['PHP_SELF'] ?>'> 

    <p><input name="img" type="file" size="40" enctype='multipart/form-data'/></p> 

    <p><input name="upload" type="submit" value="Carica immagine" /></p> 
</form>

Quando carico l'immagine me la visualizza peró vorrei che nella cartella l'immagine venga sostituita con l' username dell' utente, quindi nella cartella alla fine ci sara solamente un immagine visto che viene sostituita dall'ultima immagine caricata. Come posso fare? Ciao e grazie
 
Ultima modifica:
ciao
da quello che ho capito tu vuoi esempio
l'utente "sofonisba" carica una foto chiamata pinco.jpg nella cartella
users/sofonisba/profile_image
e che la foto nella cartella diventi
sofonisba.jpg
giusto?
se è così ti basta (non sto a scrivere tutto)
PHP:
move_uploaded_file($_FILES["img"]["tmp_name"], "user/".$username."/profile_image".$username.".jpg");
però stai attento ad alcune cose
1) nella tabella user campo image devi inserire il nome modificato
2) fai l'insert solo la prima volta, tanto il nome dell'immagine non cambia, analogo discorso lo farei per la creazione della cartella
3)se è possibile caricare anche altri tipi di immagine come gif o png devi verificarne l'estenzione anche perche se lutente carica un'altra immagine con estenzione diversa le trovi entrambe cioè non sovrascrive

p.s.
abbandona le vecchie istruzioni mysql e passa alle mysqli o alla classe PDO
 
ciao
da quello che ho capito tu vuoi esempio
l'utente "sofonisba" carica una foto chiamata pinco.jpg nella cartella
users/sofonisba/profile_image
e che la foto nella cartella diventi
sofonisba.jpg
giusto?
se è così ti basta (non sto a scrivere tutto)
PHP:
move_uploaded_file($_FILES["img"]["tmp_name"], "user/".$username."/profile_image".$username.".jpg");
però stai attento ad alcune cose
1) nella tabella user campo image devi inserire il nome modificato
2) fai l'insert solo la prima volta, tanto il nome dell'immagine non cambia, analogo discorso lo farei per la creazione della cartella
3)se è possibile caricare anche altri tipi di immagine come gif o png devi verificarne l'estenzione anche perche se lutente carica un'altra immagine con estenzione diversa le trovi entrambe cioè non sovrascrive

p.s.
abbandona le vecchie istruzioni mysql e passa alle mysqli o alla classe PDO

Ciao ho scritto come hai detto tu peró invece di modificarmi il nome del file mi crea un' altra carella dentro profile_image cioé cosi
users/nome_utente/profile_image/nome_utente.jpg/immagine.jpg";

mi crea una cartella con il nome dell'utente.jpg, ma l'immagine rimane con lo stesso nome. Come posso fare?

Quando carico un immagine mi crea una nuova riga nella tabella mysql, io vorrei che mi inserisca l'url dell'immagine dove c'é le informazioni dell'utente e che cambi l'url quando l'utente cambia immagine. Scusa é che sono alle prime armi...
Ciao e grazie
 
ciao
a parte che mi sono dimenticato uno slash
move_uploaded_file($_FILES["img"]["tmp_name"], "user/".$username."/profile_image/".$username.".jpg");

non capisco cosa intendi, move_uploaded_file non crea una cartella ma sposta il file nella cartella (percorso) indicato, la cartella la crei prima con mkdir, a parte che non capisco perchè crei una cartella per ogni utente dato da quello che dici le immagini dell'utente sono solo una, quindi nella stessa cartella ci possono stare le immagini di diversi utenti
 
ciao
a parte che mi sono dimenticato uno slash
move_uploaded_file($_FILES["img"]["tmp_name"], "user/".$username."/profile_image/".$username.".jpg");

non capisco cosa intendi, move_uploaded_file non crea una cartella ma sposta il file nella cartella (percorso) indicato, la cartella la crei prima con mkdir, a parte che non capisco perchè crei una cartella per ogni utente dato da quello che dici le immagini dell'utente sono solo una, quindi nella stessa cartella ci possono stare le immagini di diversi utenti

Ciao ho scritto cosi il codice per l

HTML:
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" 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">


<?php
if(isset($_FILES['file']['tmp_name'])) {
	
	$user = 'users/'. $login->get_username(). "/profile_image/";  
	mkdir("$user",0777); 
	
$fileCount =  $login->get_username();
$newName = $user . ( $fileCount) . '.png';
move_uploaded_file($_FILES['file']['tmp_name'], $newName);
echo $newName;
echo "<img src='$newName' width='150' height='170' /><br>\n";
		mysql_query("INSERT INTO `users` (`image`) VALUES('$newName')") or die(mysql_error());
}
?>

Nella colonna image sulla tabella users mi viene l'url dell' immagine peró voglio che mi venga nella stessa riga dove c'é scritto username, nome, cognome ecc. Quando carico un immagine l'url dell'immagine mi viene in un altra riga, come posso fare? Vorrei che quando l'utente carica un altra immagine l'url dell'immagine sulla tabella cambia in base all'immagine che ha caricato.
Ciao e grazie
 

Discussioni simili