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 > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 16-01-09, 21:20   #1 (permalink)
Moderatore
 
L'avatar di ilnetsurfer
 
Data di registrazione: Jun 2007
Ubicazione: Napoli
Messaggi: 535
Invia un messaggio tramite MSN a ilnetsurfer
[Script] Classe per l'upload

'Sera a tutti e benvenuti in questo nuovo script!
Si tratta di uno script per l'upload, più precisamente una classe...Ovvero un insieme di funzioni!
Lo script è abbastanza commentato, quindi credo non ci sia bisogno di spiegazioni...
Ecco il codice :
class.upload.php :
Codice PHP:
<?php
##################################
#           PHP CLASS            #
#         CLASSE PER L'UPLOAD    #
#       TUTORIAL E GUIDA ALL'USO #
#       IL NET-SURFER            #
##################################
class upload{//Il nome della classe
public $files;//Variabile pubblica di classe contenente il file
public $dir;//Variabile pubblica di classe contenente la cartella
public $max_size;//Variabile pubblica di classe contenente la dimensione massima dei files
public $ext;//Variabile pubblica di classe contenente l'estensione del file
public $ammissed_ext;//Variabile pubblica di classe contenente l'array con le estensioni accettate
public $error;//Variabile pubblica di classe contenente gli errori
public $complete;//Variabile pubblica di classe contenente il path sul disco dell'immagine
public $link;//Variabile pubblica di classe  contenente l'URL dell'immagine
function load($esito,$err ""){//Funzione load .Prevede due variabili :
//esito(true o false, true se non c'è errore, false se c'è);
//Err : se esito è false allora dentro contiene l'errore.Altrimenti sarà vuoto



if(empty($err) && $esito true){//Se non ci sono errori e l'esito è ok

$this->error "";
if(!
$this->is_ammissed_file()){ //Qui si fa uso di una funzione interna alla classe
//Con $this->miafunc(); apriamo la funzione.Se la classe è statica utilizzeremo self::miafunc();
$this->error[] = "Estensione non accetta!";//Aggiungiamo un errore nell'array
}



if(empty(
$this->error)){
{
$this->files['name'] = str_ireplace(" ","_",$this->files['name']);//Eliminiamo gli spazi e sostituiamoli con -

$id 0;
if(
file_exists($this->dir.$id."_".$this->files['name'])){//Se esiste il file con quel nome..
while(file_exists($this->dir.$id."_".$this->files['name'])){//Finchè esiste il file con quel nome...

   
$id++;//incrementa l'id
   
$this->complete $this->dir.$id."_".$this->files['name']; //Crea il file con il nome : n_nomefile.ext dove n sta per un numero

}

if(!@
move_uploaded_file($this->files['tmp_name'],$this->complete)){   //Se l'upload è andato a buon fine...

$this->error[] = "Impossibile copiare il file nella directory";


}
$this->link "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,-9).$this->complete//Crea il link!
}else{//Se non esiste un file con quel nome...
 
if(!@move_uploaded_file($this->files['tmp_name'],$this->dir.$id."_".$this->files['name']))//Upload!
{

$this->error[] = "Impossibile copiare il file nella directory";


}
$this->link "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,-9).$this->dir.$id."_".$this->files['name'];
}

}


}
 else{
$this->error[] = $err;//Altrimenti aggiunge l'errore
  
}


 }
 }


function 
set_file_ext($_resource_file_name){//Funzione che restituisce l'estensione del file

$ext_file explode("." $_resource_file_name);//Dividiamo la stringa in tante parti quante sono i punti + 1
//ES: $stringa_punti = "ciao.mi.chiamo.valerio";
//$stringa= explode(".",$stringa);
//$stringa contiene:
//$stringa[0] = "ciao"
//$stringa[1] = "mi"
//$stringa[2] = "chiamo"
//$stringa[3] = "valerio"
$count_ext_files count($ext_file)-1;//Contiamo il numero di elementi nell'array
//ES: $array = Array("Ciao","xx","xxxx","jjb");
//$count = count($array);
//Restituisce 4
$myext $ext_file[$count_ext_files];
return 
$myext;//La funzione darà come risultato l'estensione

}

function 
is_ammissed_file(){//Funzione che restituisce true o false se l'estensione dei file è accettata
$this->ext $this->set_file_ext($this->files['name']);      //Tramite la nostra funzione creata prima settiamo l'estensione
if(in_array(strtolower($this->ext),$this->ammissed_ext))//Se l'estensione è contenuta nell'array della estensioni(con la funzione strtolower tutti i caratteri diventano in minuscolo(es .PHP diventa .php)
{
return 
true;//Restituisce true
}else{
return 
false;//Restituisce false
}

}

function 
__construct($files,$dir,$max_size,$ammissed_ext){// __construct, funzione che parte alla dichiarazione della classe
//Da notare l'uso di $this->files invece di $files
// la variabile globale di classe $this-> si usa nelle funzioni della classe
//nelle classi di tipo statico non si utilizza $this-> ma self::
//Assegnamo ad ogni variabile di classe il rispettivo contenuto
$this->files $files;
$this->dir =  $dir;
$this->max_size $max_size;
$this->ammissed_ext =   $ammissed_ext;
switch(
$this->files['error'])

                       {   
//Fa uno switch degli errori presenti all'interno della variabile error di $this->files

case UPLOAD_ERR_NO_FILE://Se non è stato selezionato alcun file...
$this->error[] = "Non &egrave; stato selezionato alcun file!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_INI_SIZE://Se si superano le dimensioni massime secondo php.ini...
$this->error[] = "&egrave; stato riscontrato un errore!Il file &egrave; troppo grande secondo le impostazioni del file php.ini!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_FORM_SIZE://Se si superano le dimensioni massime di max_file_size...
$this->error[] = "Le dimensioni superano il valore massimo consentito!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_PARTIAL://Se si riscontra un errore nell'upload...
$this->error[] = "&egrave; stato riscontrato un errore nell'upload!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_OK://Nessun errore
$this->load(true);
break;

default: 
//S c'è un errore sconosciuto...
$this->error[] = "&egrave; stato riscontrato un errore sconosciuto!";
$this->load(false,$this->error);
break;
                       }

                       }
                       }

?>
Utilizzo :

Codice PHP:
<?php
##################################
#           PHP CLASS            #
#         CLASSE PER L'UPLOAD    #
#       TUTORIAL E GUIDA ALL'USO #
#       IL NET-SURFER            #
##################################

$max_file_size 102400;//Dimensione massima di un file.102400 Bytes = 100 KiloByte;1024 Bytes = 1 KiloByte
$image_type = array('jpeg''jpg''png''gif''bmp'); //Estensioni accettate.Badate bene di scriverle in minuscolo!
if(isset($_FILES['file'])){//Se esiste $_FILES
require "class.upload.php";//includiamo la classe
$obj = new upload($_FILES['file'],"car/",$max_file_size,$image_type); //Inizializziamo la classe!
/*Il primo parametro è il file
il secondo la cartella con le immagini(E ricordate di inserire / dopo il nome);
Il terzo parametro è il limite massimo di grandezza dei files
il quarto parametro è l'array contenente le estensioni accettate
*/
#Controllo degli errori
if(!empty($obj->error)){//Se $obj->error (variabile di classe) non è vuoto, vuol dire che ci sono errori
foreach($obj->error as $err){//Scorre l'array!
echo $err."<br />";
}
exit;
//Esce dallo script se ci sono errori
}else{ //Altrimenti...
echo "Il link della tua immagine : <a href = \"".$obj->link."\">".$obj->link."</a>";
}


}

?>

<form enctype="multipart/form-data" action="index.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size?>" />
<input type="file" name="file" />
<input type="submit" name="upload" value="Upload">

</form>
Features :
  1. Controllo dell'estensione
  2. Controllo MASSIMO di ogni errore
  3. Controlla se il file con quel nome già esiste : in caso affermativo altera il nome con un numero
  4. Restituisce il link con l'immagine
  5. Codice chiaro e ipercommentato
Se volete aiuto per il codice o , perchè no, darmi consigli, fatevi avanti!
Ola!
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.

Ultima modifica di ilnetsurfer : 16-01-09 21:26.
ilnetsurfer non in linea   Rispondi citando
Vecchio 26-01-09, 17:08   #2 (permalink)
Moderatore
 
L'avatar di ilnetsurfer
 
Data di registrazione: Jun 2007
Ubicazione: Napoli
Messaggi: 535
Invia un messaggio tramite MSN a ilnetsurfer
Importanti modifiche !!

IMPORTANTI MODIFICHE!

Ho apportato delle importanti modifiche allo script...
Da adesso non c'è bisogno di utilizzare foreach per gli errori, la classe agirà da sola...Quindi bisogna solo limitarsi al consueto
Codice PHP:
$obj = new upload($_FILES['file'],"car/",$max_file_size,$image_type); 
E niente più!
Ecco il codice della classe :
Codice PHP:
<?php

 
##################################
#           PHP CLASS  1.2          #
#         CLASSE PER L'UPLOAD    #
#       TUTORIAL E GUIDA ALL'USO #
#       IL NET-SURFER            #
##################################
class upload{//Il nome della classe
public $files;//Variabile pubblica di classe contenente il file
public $dir;//Variabile pubblica di classe contenente la cartella
public $max_size;//Variabile pubblica di classe contenente la dimensione massima dei files
public $ext;//Variabile pubblica di classe contenente l'estensione del file
public $ammissed_ext;//Variabile pubblica di classe contenente l'array con le estensioni accettate
public $error;//Variabile pubblica di classe contenente gli errori
public $complete;//Variabile pubblica di classe contenente il path sul disco dell'immagine
public $link;//Variabile pubblica di classe  contenente l'URL dell'immagine
public $my_err;//Variabile pubblica di classe  contenente l'errore finale
function load($esito,$err ""){//Funzione load .Prevede due variabili :
//esito(true o false, true se non c'è errore, false se c'è);
//Err : se esito è false allora dentro contiene l'errore.Altrimenti sarà vuoto



if(empty($err) && $esito true){//Se non ci sono errori e l'esito è ok

$this->error "";
if(!
$this->is_ammissed_file()){ //Qui si fa uso di una funzione interna alla classe
//Con $this->miafunc(); apriamo la funzione.Se la classe è statica utilizzeremo self::miafunc();
$this->error[] = "Estensione non accetta!";//Aggiungiamo un errore nell'array
}



if(empty(
$this->error)){
{
$this->files['name'] = str_ireplace(" ","_",$this->files['name']);//Eliminiamo gli spazi e sostituiamoli con -

$id 0;
if(
file_exists($this->dir.$id."_".$this->files['name'])){//Se esiste il file con quel nome..
while(file_exists($this->dir.$id."_".$this->files['name'])){//Finchè esiste il file con quel nome...

   
$id++;//incrementa l'id
   
$this->complete $this->dir.$id."_".$this->files['name']; //Crea il file con il nome : n_nomefile.ext dove n sta per un numero

}

if(!@
move_uploaded_file($this->files['tmp_name'],$this->complete)){   //Se l'upload è andato a buon fine...

$this->error[] = "Impossibile copiare il file nella directory";


}
$this->link "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,-9).$this->complete//Crea il link!
}else{//Se non esiste un file con quel nome...
 
if(!@move_uploaded_file($this->files['tmp_name'],$this->dir.$id."_".$this->files['name']))//Upload!
{

$this->error[] = "Impossibile copiare il file nella directory";


}
$this->link "http://".$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,-9).$this->dir.$id."_".$this->files['name'];
}

}


}
 else{
$this->error[] = $err;//Altrimenti aggiunge l'errore
  
}


 }
 
$this->no_error() ? print($this->link):print("Sono stati riscontrati i seguenti errori :
 "
.$this->my_err);
 }


function 
set_file_ext($_resource_file_name){//Funzione che restituisce l'estensione del file

$ext_file explode("." $_resource_file_name);//Dividiamo la stringa in tante parti quante sono i punti + 1
//ES: $stringa = "ciao.mi.chiamo.valerio";
//$stringa_array = explode(".",$stringa);
//$stringa contiene:
//$stringa[0] = "ciao"
//$stringa[1] = "mi"
//$stringa[2] = "chiamo"
//$stringa[3] = "valerio"
$count_ext_files count($ext_file)-1;//Contiamo il numero di elementi nell'array
//ES: $array = Array("Ciao","xx","xxxx","jjb");
//$count = count($array);
//Restituisce 4
$myext $ext_file[$count_ext_files];
return 
$myext;//La funzione darà come risultato l'estensione

}

function 
is_ammissed_file(){//Funzione che restituisce true o false se l'estensione dei file è accettata
$this->ext $this->set_file_ext($this->files['name']);      //Tramite la nostra funzione creata prima settiamo l'estensione
if(in_array(strtolower($this->ext),$this->ammissed_ext))//Se l'estensione è contenuta nell'array della estensioni(con la funzione strtolower tutti i caratteri diventano in minuscolo(es .PHP diventa .php)
{
return 
true;//Restituisce true
}else{
return 
false;//Restituisce false
}

}

function 
__construct($files,$dir,$max_size,$ammissed_ext){// __construct, funzione che parte alla dichiarazione della classe
//Da notare l'uso di $this->files invece di $files
// la variabile globale di classe $this-> si usa nelle funzioni della classe
//nelle classi di tipo statico non si utilizza $this-> ma self::
//Assegnamo ad ogni variabile di classe il rispettivo contenuto
$this->files $files;
$this->dir =  $dir;
$this->max_size $max_size;
$this->ammissed_ext =   $ammissed_ext;
switch(
$this->files['error'])

                       {   
//Fa uno switch degli errori presenti all'interno della variabile error di $this->files

case UPLOAD_ERR_NO_FILE://Se non è stato selezionato alcun file...
$this->error[] = "Non &egrave; stato selezionato alcun file!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_INI_SIZE://Se si superano le dimensioni massime secondo php.ini...
$this->error[] = "&egrave; stato riscontrato un errore!Il file &egrave; troppo grande secondo le impostazioni del file php.ini!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_FORM_SIZE://Se si superano le dimensioni massime di max_file_size...
$this->error[] = "Le dimensioni superano il valore massimo consentito!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_PARTIAL://Se si riscontra un errore nell'upload...
$this->error[] = "&egrave; stato riscontrato un errore nell'upload!";
$this->load(false,$this->error);
break;

case 
UPLOAD_ERR_OK://Nessun errore
$this->load(true);
break;

default: 
//S c'è un errore sconosciuto...
$this->error[] = "&egrave; stato riscontrato un errore sconosciuto!";
$this->load(false,$this->error);
break;
                       }

                       }
                       
function 
no_error(){ //Funzione che controlla se ci sono errori
if(!empty($this->error)){//Se $this->error (variabile di classe) non è vuoto, vuol dire che ci sono errori

foreach($this->error as $err){//Scorre l'array ...
$this->my_err .= $err."<br />";  //E lo riempe!
}
return 
false;
}else{ 
//Altrimenti...
$this->link "Il link della tua immagine : <a href = \"".$this->link."\">".$this->link."</a>";
return 
true;
}


}
                       }

?>
Ecco la parte importante :
Codice PHP:
function no_error(){ //Funzione che controlla se ci sono errori
if(!empty($this->error)){//Se $this->error (variabile di classe) non è vuoto, vuol dire che ci sono errori

foreach($this->error as $err){//Scorre l'array ...
$this->my_err .= $err."<br />";  //E lo riempe!
}
return 
false;
}else{ 
//Altrimenti...
$this->link "Il link della tua immagine : <a href = \"".$this->link."\">".$this->link."</a>";
return 
true;
}



Per il resto, il codice della index sarà così:
Codice PHP:
<?php
##################################
#           PHP CLASS 1.2        #
#         CLASSE PER L'UPLOAD    #
#       TUTORIAL E GUIDA ALL'USO #
#       IL NET-SURFER            #
##################################

$max_file_size 102400;//Dimensione massima di un file.102400 Bytes = 100 KiloByte;1024 Bytes = 1 KiloByte
$image_type = array('jpeg''jpg''png''gif''bmp'); //Estensioni accettate.Badate bene di scriverle in minuscolo!
if(isset($_FILES['file'])){//Se esiste $_FILES
require "class.upload.php";//includiamo la classe
$obj = new upload($_FILES['file'],"car/",$max_file_size,$image_type); //Inizializziamo la classe!
/*Il primo parametro è il file
il secondo la cartella con le immagini(E ricordate di inserire / dopo il nome);
Il terzo parametro è il limite massimo di grandezza dei files
il quarto parametro è l'array contenente le estensioni accettate
*/
}

?>

<?php
echo "Estensioni accettate : ";//Scrive, tramite foreach, tutte le estensioni accettate
foreach($image_type as $type){
echo 
$type." ";
}
?>
<form enctype="multipart/form-data" action="index.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size?>" />
<input type="file" name="file" />
<input type="submit" name="upload" value="Upload">

</form>
Ciao!
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.

Ultima modifica di ilnetsurfer : 26-01-09 17:12.
ilnetsurfer non in linea   Rispondi citando
Vecchio 18-02-09, 10:26   #3 (permalink)
User
 
Data di registrazione: Sep 2008
Messaggi: 79
Ciao, ho dei dubbi sull'utilizzo me lo fai un esempi d'uso della classe? pure in pvt, grazie!!!!
texcs non in linea   Rispondi citando
Vecchio 18-02-09, 14:11   #4 (permalink)
Moderatore
 
L'avatar di ilnetsurfer
 
Data di registrazione: Jun 2007
Ubicazione: Napoli
Messaggi: 535
Invia un messaggio tramite MSN a ilnetsurfer
Quote:
ho dei dubbi sull'utilizzo me lo fai un esempi d'uso della classe?
Certamente!
Quote:
pure in pvt, grazie!!!!
Meglio pubblicamente, così anche altri che si trovano in difficoltà come te potranno risolvere
Iniziamo!
Questa classe è molto semplice da utilizzare, sopratutto nella nuova versione, che non richiede il foreach degli errori.
Considera questo codice :
Codice:
<form enctype="multipart/form-data" action="index.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size; ?>" />
<input type="file" name="file" />
<input type="submit" name="upload" value="Upload">

</form>
Per eseguire l'upload di un immaigine , bisogna prima usare l'html e creare un form.
Codice:
<input type="hidden" name="MAX_FILE_SIZE" value="<?php  echo $max_file_size; ?>" />
Questo è un campo nascosto, ma serve perchè deve specificare la massima grandezza che un file uppato può avere.
Anche se molti browser ignorano questo campo, è bene inserirlo, perchè poi ci penserà PHP a vedere se il file pesa eccessivamente.
Detto questo, passiamo a php.
Bisogna prima includere la classe :
Codice PHP:
<?php
require "class.upload.php";//includiamo la classe
?>
Dopodichè , istanziamo 2 variabili :
Codice PHP:
$max_file_size 102400;//Dimensione massima di un file.102400 Bytes = 100 KiloByte;1024 Bytes = 1 KiloByte
$image_type = array('jpeg''jpg''png''gif''bmp'); //Estensioni accettate.Badate bene di scriverle in minuscolo! 
$max_file_size è la variabile che contiene un numero ce sarà la massima grandezza in bytes di un file.
$image_type è un array che contiene tutti i tipi di estensioni di un file(raw,jpg,jpeg,bmp, ecc...).
Prima di effettuare l'upload, è bene controllare che il file esista :
Codice PHP:
if(isset($_FILES['file'])){//Se esiste $_FILES 

Adesso upload!
Codice PHP:
$obj = new upload($_FILES['file'],"car/",$max_file_size,$image_type); //Inizializziamo la classe! 
Dobbiamo inserire la variabile che contiene il file, la cartella di destinazione e le due variabili in precedenza istanziate.
Non serve nient'altro!
Quindi, il codice essenziale sarà :
Codice PHP:
<?php
$max_file_size 
102400;
$image_type = array('jpeg''jpg''png''gif''bmp'); 
if(isset(
$_FILES['file'])){
require 
"class.upload.php";
$obj = new upload($_FILES['file'],"car/",$max_file_size,$image_type); 
}
?>
<form enctype="multipart/form-data" action="index.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size?>" />
<input type="file" name="file" />
<input type="submit" name="upload" value="Upload">

</form>
Spero di essermi fatto capire
Per qualsiasi dubbio, posta!
Ola!
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.
ilnetsurfer non in linea   Rispondi citando
Vecchio 24-02-09, 09:13   #5 (permalink)
User
 
Data di registrazione: Aug 2008
Messaggi: 101
Ciao ma se io non voglio inserire un'immagine ma un file zip, rar o exe basta cambiare l'estensioni nella $image_type, giusto?
Rispondi perfavore

Ultima modifica di steave67 : 24-02-09 09:17.
steave67 non in linea   Rispondi citando
Vecchio 28-02-09, 21:36   #6 (permalink)
Moderatore
 
L'avatar di ilnetsurfer
 
Data di registrazione: Jun 2007
Ubicazione: Napoli
Messaggi: 535
Invia un messaggio tramite MSN a ilnetsurfer
Esattamente
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.
ilnetsurfer non in linea   Rispondi citando
Vecchio 10-04-09, 01:03   #7 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,847
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Mi sto sbizzarrendo con questa classe.
Già te li ho fatti i complimenti per questa classe e te li rinnovo.

A questo punto pero' avrei una domanda:
come lo struttureresti un multi-upload utilizzando questa classe?
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn ora è in linea   Rispondi citando
Vecchio 10-04-09, 10:33   #8 (permalink)
Moderatore
 
L'avatar di ilnetsurfer
 
Data di registrazione: Jun 2007
Ubicazione: Napoli
Messaggi: 535
Invia un messaggio tramite MSN a ilnetsurfer
Ciao sam...
Perdona la mia prolungata assenza, ma la scuola non mi lascia tregua!
Comunque, per il multiupload basta fare così :
Codice PHP:
<form enctype="multipart/form-data" action="index.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $max_file_size?>" />
<input type="file" name="file1" />
<input type="file" name="file2" />
<input type="submit" name="upload" value="Upload">

</form>
E così :
Codice PHP:
if(isset($_FILES['file1'])){//Se esiste $_FILES
require "class.upload.php";//includiamo la classe
$obj = new upload($_FILES['file1'],"car/",$max_file_size,$image_type); //Inizializziamo la classe!

}
if(isset(
$_FILES['file2'])){//Se esiste $_FILES
require "class.upload.php";//includiamo la classe
$obj = new upload($_FILES['file2'],"car/",$max_file_size,$image_type); //Inizializziamo la classe!


Però si potrebbe anche usare
Codice PHP:
<input type="file" name="file[]" /> 
Però non l'ho mai usato...Non so come si fa...
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.
ilnetsurfer non in linea   Rispondi citando
Vecchio 10-04-09, 15:17   #9 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,847
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Quote:
ilnetsurfer Visualizza il messaggio
Perdona la mia prolungata assenza, ma la scuola non mi lascia tregua!
Scusarti di che?
Son io e tutti gli altri utenti a cui è servita questa classe che dobbiamo ringraziare te.

Quote:
ilnetsurfer Visualizza il messaggio
Però si potrebbe anche usare
Codice PHP:
<input type="file" name="file[]" /> 
Però non l'ho mai usato...Non so come si fa...
Credo, e c'è un'alta probabilità che stia sbagliando, che in questo caso bisogna implementare un Js o similare per l'associazione (tipo quando permetti di scegliere quanti campi upload file vuoi fare - Aggiungi un altro - ). Arrivati alla classe poi si fa il count e quindi si cicla il risultato. Ma non ne son certissimo.
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!

Ultima modifica di Samyorn : 10-04-09 19:51.
Samyorn ora è in linea   Rispondi citando
Vecchio 11-04-09, 13:59   #10 (permalink)
Moderatore
 
L'avatar di ilnetsurfer
 
Data di registrazione: Jun 2007
Ubicazione: Napoli
Messaggi: 535
Invia un messaggio tramite MSN a ilnetsurfer
Ecco, ho questo script per aggiungere e rimuovere campi con js:
Codice:
<!DOCTYPE  html PUBLIC "-//W3C//DTD  XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="it"><head><title>Aggiungere campi in un modulo - Esempio  JavaScript scaricato da HTML.it</title>



    
    <meta  http-equiv="Content-type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Language" content="it">
<script type="text/javascript">
<!--

var arrInput = new  Array(0);
  var arrInputValue = new Array(0);

function addInput() {
  //arrInput.push(createInput(arrInput.length));
  arrInput.push(arrInput.length);
  //arrInputValue.push(arrInputValue.length);
  arrInputValue.push("");
  display();
}

function display() {
  document.getElementById('parah').innerHTML="";
  for (intI=0;intI<arrInput.length;intI++) {
    document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
  }
}

function saveValue(intId,strValue) {
  arrInputValue[intId]=strValue;
}  

function createInput(id,value) {
  return "<input type='text' id='test  name='file[]' "+ id +"' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><br>";
}

function deleteInput() {
  if (arrInput.length > 0) { 
     arrInput.pop(); 
     arrInputValue.pop();
  }
  display(); 
}
// -->
</script></head><body>
<br><br>
<a href="javascript:addInput()">Aggiungi un campo al modulo</a><br>
<a href="javascript:deleteInput()">Rimuovi un campo dal modulo</a>

<div align="center">
<p id="parah"></p>


</div>


</body></html>
E questa è la funzione interessata :
Codice HTML:
function createInput(id,value) {
  return "<input type='text' id='test  name='file[]' "+ id +"' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><br>";
}
Si dovrebbe ciclare $_FILES['file']....Il fatto è che vorrei anche provare, ma ho formattato da poco il pc e php non ce l'ho..Adesso installo un pacchetto così faccio due prove...Ti faccio sapere più tardi!
Ola!
__________________
He knows not where he's going.For the ocean will decide.It's not the DESTINATION...It's the glory of the RIDE.
ilnetsurfer non in linea   Rispondi citando
Vecchio 02-06-09, 19:21   #11 (permalink)
User
 
Data di registrazione: May 2009
Messaggi: 102
Ciao ti volevo chiedere una cosa, ma se io volessi che quando l'utente (ovviamente registrato) carichi un immagine ed essa viene rinominata con l'id del utnete, come dovrei fare?
(Cosi poi posso richiamarla e creare un avatar).

Grazie Salvatore.
Zomer non in linea   Rispondi citando
Vecchio 30-06-09, 19:29   #12 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Ciao Zomer,
Sostituendo:
Codice PHP:
if(!@move_uploaded_file($this->files['tmp_name'],$this->dir.$id."_".$this->files['name']))//Upload! 
Con:
Codice PHP:
if(!@move_uploaded_file($this->files['tmp_name'],$this->dir.$id."_".$VariabileConID))//Upload! 
Dovrebbe funzionare.
Thedarkita ora è in linea   Rispondi citando
Vecchio 03-07-09, 16:22   #13 (permalink)
User
 
Data di registrazione: May 2009
Messaggi: 102
Allora credo che funzioni ma una volta che l'utente carica l'immagine poi dopo come posso prenderla? dovrei fare qualcosa del tipo <IMG SRC="avatar/ID.gif"> non trovi? ma cosi facnedo richimarei l'id del utente che visualizza l'immagine qundi se l'untete A si conette visualizza la foto A perche il suo id chiama la foto A.gif e se l'utnete B vuole visitare la pagina dell'untete A vedera l'immagine B.gif!!!! come posso risolvere questo probolema?
Zomer non in linea   Rispondi citando
Vecchio 04-07-09, 18:49   #14 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Devi semplicemente fare cosi:
Codice PHP:
<IMG SRC="avatar/<?php echo $VariabileConID?>.gif">
Thedarkita ora è in linea   Rispondi citando
Vecchio 04-07-09, 20:04   #15 (permalink)
User
 
Data di registrazione: May 2009
Messaggi: 102
Si funziona...ma ci sono dei problemi...

1. Quando carico l'immagine è la visualizzo l'immagine, (che è una foto) è nella sua dimensione reale, ovvero gigantesca! a tutto schermo, potrei applicare dei semplici tag height e width...ma l'immagine potrebbe essere schiacciata.

2. Questa è una cosa, che credo di poter risolver,e ma vorrei ugualtmente un consiglio...come posso modificare l'estensione del immagine, perchè se non no riuscirei a richiamarla

Ultima modifica di Zomer : 04-07-09 20:11.
Zomer non in linea   Rispondi citando
Rispondi


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 20:16.




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

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.