Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 02-10-10, 17:03   #1 (permalink)
User Newbie
 
L'avatar di pampurio97
 
Data di registrazione: Oct 2010
Messaggi: 2
PHP Form Image Upload

Ciao a tutti... mi sono appena registrato per chiedervi una mano...

Allora: io vorrei creare una specie di servizio di upload immagini. mi sono messo alla ricerca e ho trovato questo codice:

Codice PHP:
<?php
//define a maxim size for the uploaded images in Kb
define ("MAX_SIZE","6500"); 

//This function reads the extension of the file. It is used to determine if the file is an image by checking the extension. 
function getExtension($str) {
$i strrpos($str,".");
if (!
$i) { return ""; }
$l strlen($str) - $i;
$ext substr($str,$i+1,$l);
return 
$ext;
}

//This variable is used as a flag. The value is initialized with 0  (meaning no error found) and it will be changed to 1 if an errro  occures. If the error occures the file will not be uploaded.
$errors=0;
//checks if the form has been submitted
if(isset($_POST['Submit'])) 
{
$username $_POST['username']; 
$email $_POST['email'];  
//reads the name of the file the user submitted for uploading
$image=$_FILES['image']['name'];
//if it is not empty
if ($image
{
//get the original name of the file from the clients machine
$filename stripslashes($_FILES['image']['name']);
//get the extension of the file in a lower case format
$extension getExtension($filename);
$extension strtolower($extension);
//if it is not a known extension, we will suppose it is an error and will not upload the file, otherwize we will do more tests
if (($extension != "jpg") && ($extension != "jpeg") &&  ($extension != "png") && ($extension != "eps") &&  ($extension != "gif"))    
{
//print error message
echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else
{
//get the size of the image in bytes
//$_FILES['image']['tmp_name'] is the temporary filename of the file in which the uploaded file was stored on the server
$size=filesize($_FILES['image']['tmp_name']);

//compare the size with the maxim size we defined and print error if bigger
if ($size MAX_SIZE*1024)
{
echo 
'<h1>You have exceeded the size limit!</h1>';
$errors=1;
}

//we will give an unique name, for example the time in unix time format
$image_name=$filename;
//the new name will be containing the full path where will be stored (images folder)
$newname="images/".$image_name;
//we verify if the image has been uploaded, and print error instead
$copied copy($_FILES['image']['tmp_name'], $newname);
if (!
$copied
{
echo 
'<h1>Copy unsuccessfull!</h1>';
$errors=1;
}}}}

//If no errors registred, print the success message
if(isset($_POST['Submit']) && !$errors
{
echo 
"<h1>File Uploaded Successfully! Thanks.</h1>";
}

?>

<!--next comes the form, you must set the enctype to "multipart/frm-data" and use an input type "file" --> 
<form name="newad" method="post" enctype="multipart/form-data" action=""> 
<table> 
<tr><td><input type="file" name="image"></td></tr> 
</td></tr> 
<tr><td><input name="Submit" type="submit" value="Upload image"></td></tr> 
</table> 
</form>
. Lo script funziona alla perfezione. Io l'ho inserito in una pagina con un pò più di grafica, ma la parte in php non la "interpretava". Allora ho inserito il codice php in un'altra pagina ed ho aggiunto al form html action="prova.php"

Codice PHP:
<form name="newad" method="post" enctype="multipart/form-data" action="prova.php"
 <
table
 <
tr><td><input type="file" name="image"></td></tr
 </
td></tr
 <
tr><td><input name="Submit" type="submit" value="Upload image"></td></tr
 </
table
 </
form
In questo modo riesco a fare l'upload immagini perfettamente.


Ma io mi chiedo: se qualcuno va li per caricare un'immagine, la carica . Ma dopo come fa a prendere il link? o.O

Come devo modificare il codice perchè l'utente che uppa l'immagine vede il link dopo che è stata caricata? Oppure che viene mandato direttamente all'immagine?

Non so se mi sono spiegato...

Grazie.
pampurio97 non in linea   Rispondi citando
Vecchio 03-10-10, 21:02   #2 (permalink)
User
 
Data di registrazione: Oct 2006
Messaggi: 287
Invia un messaggio tramite Skype a mikslap
Innanzitutto spero per te che l'utente sia loggato.

Sicuramente è così ed allora per ogni utente crei, con php, una cartella univoca per ogni utente. Magari usi l'ID della tabella del DB associato ad un nome che indica le immagini uploadate.
Esempio cartella:
img_ - nome statico
id - ID autoincrement (univoco) della tabella del DB.

Infine il nome delle immagini uploadate dovrai scriverle in una tabella affinchè possa poi prenderle per visualizzarle e/o lincarle
mikslap non in linea   Rispondi citando
Vecchio 04-10-10, 18:31   #3 (permalink)
User Newbie
 
L'avatar di pampurio97
 
Data di registrazione: Oct 2010
Messaggi: 2
L'utente non è loggato. E non si registra neanche. Questa è la versione senza database. Ne ho trovata un'altra versione molto più semplice. Ho risolto
pampurio97 non in linea   Rispondi citando
Vecchio 27-10-10, 23:28   #4 (permalink)
User Newbie
 
Data di registrazione: Sep 2010
Messaggi: 7
ciao, scusami potresti postare la versione esatta che funziona....a me dice che non ha effettuato il caricamento seguento le indicazioni del primo post....
Grazie
skylight non in linea   Rispondi citando
Rispondi
Tags: , , , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 15:28.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.