Prelevare dati da Array o $_FILES

usaikarts

Nuovo Utente
25 Mar 2009
22
0
0
Ormai sono al terzo Post!!!!!!!!!!! La disperazione sale!!!!!

.. in pratica ho uno script che riceve dati inviati da un form per eseguire un upload multiplo...

l'upload funziona.

al termine di questo script ne ho inserito un altro per generare un semplice file di testo ed andarci a scrivere dentro;

Il file lo crea e ci scrive, ma qui arriva il problema... non riesco a far scrivere i nomi dei file pervenuti dal form...

Il Name dell'input del form è "my_field[]"... richiamando questa variabile, anche provando con print, mi restituisce la stessa scritta "my_field[]", anche se inserico "my_field[0]" ecc...

Vi posto alcune parti del codice...

da qui dovrebbe caricare i dati dal form...

Codice:
...
else if ($_POST['action'] == 'multiple') {

    // ---------- MULTIPLE UPLOADS ----------

    // as it is multiple uploads, we will parse the $_FILES array to reorganize it into $files
    $files = array();
    foreach ($_FILES['my_field'] as $k => $l) {
        foreach ($l as $i => $v) {
            if (!array_key_exists($i, $files)) 
                $files[$i] = array();
            $files[$i][$k] = $v;
        }
    }

    // now we can loop through $files, and feed each element to the class
    foreach ($files as $file) {
    
        // we instanciate the class for each element of $file
        $handle = new Upload($file);
        
        // then we check if the file has been uploaded properly
        // in its *temporary* location in the server (often, it is /tmp)
        if ($handle->uploaded) {
...

da quanto ho capito i dati vengo poi trasferiti nella variabile $files (anche in quella $file??)

comunque anche richiamando queste variabili non mi restituisce il nome del file ma "Array"...

qui postola la parte del codice che genera il file e ci scrive sopra...

Codice:
...
$vartestolfgaz="<img src=\"pgresize.php\?image=$my_field[0]\">";
if ($var8!=null){//Attiviamo PHP solo se il form è stato cliccato
echo "<br />Il Link al tuo G è stato creato.<br />";
$varfgaz=@fopen("artisti/$nome1$nome2$nome3$cognome1$cognome2$cognome3/linkg.txt","a"); //apro il file .txt (modalità lettura/scrittura)
@fwrite($varfgaz,$vartestolfgaz."\n"); //scrivo la variabile del form nel file .txt
$vargfaz=file("artisti/$nome1$nome2$nome3$cognome1$cognome2$cognome3/linkg.txt"); //estraggo l'array dal file .txt
@fclose($varfgaz); //chiudo il file .txt
$i=count($vargfaz); //conto gli elementi nell'array
for($a=0; $a<=$i; $a++){ //uso il ciclo for per guardare nell'array
echo ""; //scrivo tutti gli elementi dell'array, ma potevo eseguire qualunque altra operazione con le variabili!!!
} //fine ciclo for
} //fine ciclo if

come detto il codice funziona... il file viene creato e scritto nella cartella richiesta... mi sballa solo quella variabile!!!!!! :boxing:

Help!!!!! Help!!!!!!!!!!! No.... Ma.... Dico.... lo si vede quanto sono disperato?????? :crying: :confused:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao (sono sempre io "come il prezzemolo")
ho dato un occhio alla classe upload e, ma forse sbaglio, vi ho trovato alcuni errorretti.
es.
PHP:
else if ($_POST['action'] == 'multiple') {

da che ne so io

quella riga non funzia, dai un occhio al manuale php al link

http://it.php.net/manual/en/control-structures.elseif.php

dove dice

PHP:
<?php

/* Incorrect Method: */
if($a > $b):
    echo $a." is greater than ".$b;
else if($a == $b): // Will not compile.
    echo "The above line causes a parse error.";
endif;


/* Correct Method: */
if($a > $b):
    echo $a." is greater than ".$b;
elseif($a == $b): // Note the combination of the words.
    echo $a." equals ".$b;
else:
    echo $a." is neither greater than or equal to ".$b;
endif;

?>


p.s.
al posto di endif
if(cond1){
//righe
}elseif(cond2){
//altre righe
}
 

usaikarts

Nuovo Utente
25 Mar 2009
22
0
0
Navigo nel vuoto - un pensiero alla povera gente in abruzzo

Sempre disponibile!!!!! Un grande, altro che prezzemolo!!!!! Grazie!!!!!!

Comunque il codice che ti ho postato per l'invio dei file da form funziona...

non riesco a farmi ridare i nomi dei file inviati dal post...

la cosa assurda è che l'upload però funziona,;i file vengo caricati dove richiesto senza problematiche... ma non capisco bene dove questa "classe" mi restiusca il nome....

posto una parte del codice un pò più grande rispetto alla precedente... (tutto non me la fa mettere)

Codice:
} else if ($_POST['action'] == 'multiple') {

    // ---------- MULTIPLE UPLOADS ----------

    // as it is multiple uploads, we will parse the $_FILES array to reorganize it into $files
    $files = array();
    foreach ($_FILES['my_field'] as $k => $l) {
        foreach ($l as $i => $v) {
            if (!array_key_exists($i, $files)) 
                $files[$i] = array();
            $files[$i][$k] = $v;
        }
    }

    // now we can loop through $files, and feed each element to the class
    foreach ($files as $file) {
    
        // we instanciate the class for each element of $file
        $handle = new Upload($file);
        
        // then we check if the file has been uploaded properly
        // in its *temporary* location in the server (often, it is /tmp)
        if ($handle->uploaded) {

            // now, we start the upload 'process'. That is, to copy the uploaded file
            // from its temporary location to the wanted location
            // It could be something like $handle->Process('/home/www/my_uploads/');
            $handle->Process("./artisti/$nome1$nome2$nome3$cognome1$cognome2$cognome3/galleria/");

            // we check if everything went OK
            if ($handle->processed) {
                // everything was fine !
                echo 'Fotografia Inserita con successo<br />';
             
            } else {
                // one error occured
                echo 'Fotografie non caricate<br />';
                          }
            
        } else {
            // if we're here, the upload file failed for some reasons
            // i.e. the server didn't receive the file
            echo '<fieldset>';
            echo '  <legend>file not uploaded on the server</legend>';
            echo '  Error: ' . $handle->error . '';
            echo '</fieldset>';
        }
    }
    

}
 
Ultima modifica:

usaikarts

Nuovo Utente
25 Mar 2009
22
0
0
borgo... anche senza volerlo mi stai aiutando...

allora faccio il punto della mia situation...

ho trovato qui ne forum un post di borgo in cui illustra uno script per randomizzare file contenuti in una cartella...

dato che il mio upload funziona ho provato ad inserire parte del codice sul mio script, in modo da poter leggere i dati nell cartella..

Codice:
$desired_extension = 'png'||'jpg'||'gif'; //extension we're looking for  
$dirname = "artisti/$nome1$nome2$nome3$cognome1$cognome2$cognome3/galleria";  
$dir = @opendir($dirname);  

$conta_imm=5; //contatore delle immagini 
$nome_immagine=array();//array con i nomi delle immagini 

while(false != ($file = @readdir($dir)))  
{  
if(($file != ".") and ($file != ".."))  
{  
$fileChunks = explode(".", $file);  
if($fileChunks[1] == $desired_extension) //interested in second chunk only  
{  
$conta_imm++; //parto da uno perche più comodo ed incremento ad ogni giro 
$nome_immagine[$conta_imm]=$file;  

}  
}  
}  
closedir($dir);

Subito dopo scrivo le varibili che mi includono un tag html con il nome del file
Codice:
$vartestolfgaz="<img src=\"pgresize.php?image=$nome_immagine[$conta_imm][0]&maxim_size=300\">"."<br />"."\n";
$vartestolfgaz2="<img src=\"pgresize.php?image=$nome_immagine[$conta_imm][1]&maxim_size=300\">"."<br />"."\n";
$vartestolfgaz3="<img src=\"pgresize.php?image=$nome_immagine[$conta_imm][2]&maxim_size=300\">"."<br />"."\n";

Anche inserendo una struttura numerica di questo tipo [0], [1], [2],ecc... mi restituisce soltanto il nome del primo file che trova...

ci siamo quasi... o no???????
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao

anche senza volerlo mi stai aiutando...
sono invincibile.

scusa ho visto una piccola discrepanza scrivi

$conta_imm=5; //contatore delle immagini

poi

$conta_imm++; //parto da uno perche più comodo ed incremento ad ogni giro

non so se è questo, poi guardo meglio
 
Discussioni simili
Autore Titolo Forum Risposte Data
R [PHP] Prelevare dati dal più recente PHP 6
J Prelevare dati dal db Mysql PHP 9
E Prelevare dati diversi da 3 tabelle con gli stessi campi e accodarli per data PHP 1
helpdesk Prelevare dati riga per riga PHP 20
A Prelevare i dati in base al titolo selezionato (era Aiuto!) PHP 1
I Prelevare dati PHP 6
I Prelevare dati database a caso PHP 4
I Prelevare dati da due tabelle PHP 2
catellostefano prelevare dati da tabella mysql PHP 6
R Prelevare dati da un file xml Ajax 3
trattorino [PHP] prelevare minuti da date confrontate PHP 2
trattorino [PHP] Prelevare contenuto PHP 1
trattorino [PHP] prelevare solo div con id PHP 1
M Creazione codice html per far prelevare un banner HTML e CSS 3
C Prelevare i record che appartengono al giorno più vecchio del mese. PHP 11
R Come prelevare valori da Feed Rss ? aiuto Javascript 0
E prelevare dato da una tabella ed inserila in un altra PHP 6
ivarello Prelevare contenuto DIV di un'altra pagina PHP 5
P Prelevare il valore da un radio button con name dinamico!! PHP 2
P Script per prelevare contenuti dalle pagine web PHP 1
F Prelevare un valore dall'oggetto selcet Javascript 4
F prelevare valori da una forse array PHP 7
Fossa Prelevare risultati da siti esterni (API?) PHP 9
B Metodo POST prelevare VALUE da tasto SUBMIT PHP 2
T [sql] Prelevare le ultime N righe? Database 3
F Prelevare variabile di ritorno da Google Maps API PHP 0
catellostefano Prelevare variabile da un altra pagina php PHP 2
I Prelevare variabile da url PHP 3
C prelevare immagine e caricarla tramite ftp in php PHP 2
M Prelevare *.wmv da internet Webdesign e Grafica 1
D Prelevare da un db i primi caratteri di un articolo. Classic ASP 1
L Prelevare testo da campo di testo Classic ASP 2
B prelevare cookies per fini di sviluppo PHP 2
ElfoDelBasket [php-mysql] Prelevare i valori dai campi Enum/Set PHP 5
P Come posso prelevare keyascii? Javascript 1
T Come faccio ad inserire file.pdf da far prelevare dal mio sito web? SEO e Posizionamento 0
max75 query su due tabelle e dati doppioni MS Access 2
K Form che manda dati doppi PHP 1
T problemi con dati menu a tendina HTML e CSS 2
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
D Risultati diversi elaborazione dati fra localhost e Altervista PHP 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
M Invio dati database via email php PHP 0
K [php]form invio dati PHP 0
peppe0703 Come Estrarre dati da db wordpress e richiamarli in html esterno HTML e CSS 0
V dati scomparsi dal sito HTML e CSS 3
M Memorizzare i dati nei campi prima dell'invio al db PHP 4
A Stampare dati da form PHP 8
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1

Discussioni simili