- Home
- Categorie
- Coding e Sistemistica
- PHP
- [Script] Classe per l'upload
-
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?
-
Ciao sam...
Perdona la mia prolungata assenza, ma la scuola non mi lascia tregua!:o
Comunque, per il multiupload basta fare così :
[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>[/PHP]
E così :
[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!}[/PHP]
Però si potrebbe anche usare
[PHP]<input type="file" name="file[]" />[/PHP]
Però non l'ho mai usato...Non so come si fa...
-
@ilnetsurfer said:
Perdona la mia prolungata assenza, ma la scuola non mi lascia tregua!:o
Scusarti di che?
Son io e tutti gli altri utenti a cui è servita questa classe che dobbiamo ringraziare te.@ilnetsurfer said:
Però si potrebbe anche usare
[php]<input type="file" name="file[]" />[/php]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.
-
Ecco, ho questo script per aggiungere e rimuovere campi con js:
<!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 :
[HTML]function createInput(id,value) {
return "<input type='text' id='test name='file[]' "+ id +"' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><br>";
}
[/HTML]
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!
-
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.
-
Ciao Zomer,
Sostituendo:
[php]
if(!@move_uploaded_file($this->files['tmp_name'],$this->dir.$id."_".$this->files['name']))//Upload![/php]
Con:
[php]
if(!@move_uploaded_file($this->files['tmp_name'],$this->dir.$id."_".$VariabileConID))//Upload![/php]
Dovrebbe funzionare.
-
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? :bho: 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?
-
Devi semplicemente fare cosi:
[php]
<IMG SRC="avatar/<?php echo $VariabileConID; ?>.gif">[/php]
-
Si funziona...ma ci sono dei problemi...
-
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.
-
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
-
-
Scusate ma dove va inserita la directory dove deve essere copiato il file?
Grazie in anticipo.
-
Ciao pusherxx, il file che contiene la classe lo puoi mettere dove vuoi, l'importante è che assegni il giusto percorso quando la richiami con il:
[php]require "class.upload.php";[/php]
-
No, volevo sapere dove devo inserire la directory su cui verranno salvate le foto!
-
Scusate, forse non sono stato chiaro e mi scuso, m'interessa sapere il campo, del codice PHP, in cui inserire la directory dove vanno a finire le immagini che andiamo ad upload-are!
Scusate ancora e grazie in anticipo!:bho::bho:
-
Nell'inizializzazione della classe.
$obj = new upload($_FILES['file'],**"car/"**,$max_file_size,$image_type); //Inizializziamo la classe!
-
Ok, grazie per la risposta, ma mi dice ancora "impossibile salvare nella directory"!! Come mai? Dove sbaglio??xx:x
-
Prova a controllare i permessi della cartella.
-
I permessi li ho settati già a 777, non vorrei che bisogna inserire qualche altro dato all'interno della classe. Tipo, nella classe c'è un punto in cui dice
$this->link = "h ttp:// ".$_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 = "h ttp:// ".$_SERVER['SERVER_NAME'].substr($_SERVER['REQUEST_URI'],0,-9).$this->dir.$id."_".$this->files['name']; ```Bisogna inserire l'indirizzo del server compreso la cartella di destinazione o bisogna lasciarlo vuoto? perchè ho provato a riempirlo e a lasciarlo vuoto e non funziona comunque! :x
-
Sulla classe non c'è nulla da toccare, tranne che tu voglia apportare delle modifiche di comodo.
Io l'ho appena testato ed è funzionante.Perdonami se ci torno...
Dato l'errore il problema è nella scrittura del file in quella cartella (o non esiste - occhio a maiuscole/minuscole ovviamente - o non si han i permessi per scriverci).Potrebbe capitare che settando i permessi da ftp ti dice che ha fatto il settaggio dei permessi...ma in realtà non ha fatto nulla.
Ti consiglio di controllare il nome cartella e che tu lo abbia scritto giusto:$obj = new upload($_FILES['file'],**"upload/"**,$max_file_size,$image_type); //Inizializziamo la classe!
..e poi di controllare i permessi della cartella di upload da file manager.
-
Grazie mille, ho capito dove sbagliavo! Ho creato questa galleria in una sotto cartella "gallery", all'interno della quale c'è la cartella dove dev'essere copiata l'immagine caricata "albums". Semplicemente il percorso che inserivo era gallery/albums/ invece che albums/.....grazie per avermi illuminato!!
-
Di nulla.