• Home
  • Forum
  • Fare Web
  • PHP

[PHP] multi upload immagine da form

  • Creatore Discussione Creatore Discussione Kirsolo
  • Data di inizio Data di inizio 1 Lug 2013
Prec.
  • 1
  • 2
  • 3
  • 4
Succ.
Primo Prec. 3 di 4 Succ. Ultimo

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Lug 2013
  • #41
Quale è la riga 45?
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 8 Lug 2013
  • #42
Longo8 ha scritto:
Quale è la riga 45?
Clicca per allargare...

if(trim($_FILES["submit"]["name"]) == '')
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 8 Lug 2013
  • #43
ciao
sei sicuro che debba essere
if(trim($_FILES["submit"]["name"]) == '')
e non
if(trim($_FILES["immagine"]["name"]) == '')
?
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 8 Lug 2013
  • #44
borgo italia ha scritto:
ciao
sei sicuro che debba essere
if(trim($_FILES["submit"]["name"]) == '')
e non
if(trim($_FILES["immagine"]["name"]) == '')
?
Clicca per allargare...

con immagine

mi da questo:
array(5) { ["name"]=> array(1) { [0]=> string(9) "prova.jpg" } ["type"]=> array(1) { [0]=> string(10) "image/jpeg" } ["tmp_name"]=> array(1) { [0]=> string(51) "C:\Program Files (x86)\EasyPHP-12.1\tmp\php1657.tmp" } ["error"]=> array(1) { [0]=> int(0) } ["size"]=> array(1) { [0]=> int(7474) } }
Notice: Undefined offset: 1 in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\provaF.php on line 41

Notice: Undefined offset: 2 in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\provaF.php on line 42

Notice: Undefined offset: 3 in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\provaF.php on line 43

Notice: Undefined index: immagine in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\provaF.php on line 45
Non hai selezionato nessun file!

Sinceramente penso che ci siano un paio di errori nel codice....però essendo un neofita alle prime armi non son capace di scovarli/correggerli...non cè uno script già fatto x il multi upload di foto con inserimento nel db dell'url relativo?? in modo che poi io aggiunga solo i controlli max size e le estensioni?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 8 Lug 2013
  • #45
Kirsolo ha scritto:
Sinceramente penso che ci siano un paio di errori nel codice
Clicca per allargare...
Non credo ci siano altri errori nel codice perchè provandolo funziona.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 9 Lug 2013
  • #46
ciao
intanto li hai corretti tutti
$_FILES["submit"]
in
$_FILES["image"]
?
poi come detto posta il dump della tabella
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 9 Lug 2013
  • #47
borgo italia ha scritto:
ciao
intanto li hai corretti tutti
$_FILES["submit"]
in
$_FILES["image"]
?
poi come detto posta il dump della tabella
Clicca per allargare...

no non tutti, proverò.

la tabella è

id(autoincremetn) | nome | prezzo | immagine | img2 | img3 | img4

tutti varchar tranne prezzo ke è int
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 9 Lug 2013
  • #48
Kirsolo ha scritto:
tutti varchar tranne prezzo ke è int
Clicca per allargare...

Meglio un float per il campo prezzo.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 9 Lug 2013
  • #49
ciao
oltre a quello che ha detto longo
id primary key e int spero
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 10 Lug 2013
  • #50
borgo italia ha scritto:
ciao
oltre a quello che ha detto longo
id primary key e int spero
Clicca per allargare...

Si è un int.
Cmq a me non funziona, vi riposto il codice e gli errori:
PHP:
<?php 
if(isset($_POST['submit'])){ 
	
    $err="";//metti a vuoto una stringa 
    $nome=trim($_POST['nome']); //metto solo nome il titolo è simile 
    //reg_match('/^[a-z0-9]{5,15}/i' 
    if(!preg_match('/^[a-zA-Z]{2,20}$/', $nome)){//verifico che siano solo lettere min 2 max 20 
        $err.="non hai inserito il nome o nome non valido<br />";//concateno gli errori 
	} 
	$prezzo=trim($_POST['prezzo'])+0.0; 
    if($prezzo==0 || !is_numeric($prezzo)){// potresti verificare anche che superi un certo valore 
        $err.="prezzo non valido<br />"; 
    } 
	else {
	//************* INIZIO CONTROLLLO CARICAMENTO IMMAGINI ***************
	var_dump($_FILES['image']);//da questa vedi come viene costruito l'array provando a caricare più immagini 
    echo "</pre>"; 
	// limite peso in byte 
	$peso_max = 1024 * 1024;
	// inizializziamo il messaggio
	$messaggio = "Carica una o piu immagini, fino ad un massimo di 4 consentite:";
	// estensioni ammesse
	$estensioni = array("jpg", "png", "bmp", "gif");
	// percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto
	$cartella = "../provaF";
	$immagine1 = $_FILES['image']['name'][0]; 
	$immagine2 = $_FILES['image']['name'][1]; 
	$immagine3 = $_FILES['image']['name'][2]; 
	$immagine4 = $_FILES['image']['name'][3]; 
	// verifichiamo che l'utente abbia selezionato un file   
    if(trim($_FILES["image"]["name"]) == '')   
      {   echo 'Non hai selezionato nessun file!';   }  
	 
    // verifichiamo che il file è stato caricato   
    else if(!is_uploaded_file($_FILES["image"]["tmp_name"]) or $_FILES["image"]["error"]>0)   
      {    echo 'Si sono verificati problemi nella procedura di upload!';    }   
    // verifichiamo che il tipo è fra quelli consentiti   
    else if(!in_array(strtolower(end(explode('.', $_FILES["image"]["name"]))),$estensioni))   
      {    echo 'Il file che si desidera uplodare non è fra i tipi consentiti!';    }   
    // verifichiamo che la dimensione del file non eccede quella massima   
    else if($_FILES["image"]["size"] > $max_byte)   
      {   echo ' eccede la dimensione massima!';  }  
    // verifichiamo che la cartella di destinazione settata esista   
    else if(!is_dir($cartella))   
        {    echo 'La cartella in cui si desidera salvare il file non esiste!';   }     
    // verifichiamo il successo della procedura di upload nella cartella settata   
    else if(!move_uploaded_file($_FILES["image"]["tmp_name"], $cartella_upload.$_FILES["image"]["name"]))   
      {    echo 'Ops qualcosa è andato storto nella procedura di upload!';    }   
   
    // altrimenti significa che è andato tutto ok   
     else   
      { 
	  $sql = new mysql("localhost", "root", "", "luca_db");
						$query="INSERT INTO prova(nome, prezzo,immagine,img2,img3,img4) 
						VALUES('$nome','$prezzo','provaF/imagine1','provaF/imagine2','prova/imagine3','prova/imagine4')";  
						var_dump($query);//e qui verifichi che venga scritta come dovrebbe
						if(!$sql->query($query)) { 
							echo $sql->error; }
      echo 'Upload eseguito correttamente!'; 
	  //e torni al form pulito dopo 100 secondi 
    echo "<meta http-equiv='Refresh' content='100; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";
      }   
    }   	    
}
?>
array(5) { ["name"]=> array(4) { [0]=> string(7) "b&w.jpg" [1]=> string(14) "Desgriglia.jpg" [2]=> string(9) "prova.jpg" [3]=> string(10) "tetto1.jpg" } ["type"]=> array(4) { [0]=> string(10) "image/jpeg" [1]=> string(10) "image/jpeg" [2]=> string(10) "image/jpeg" [3]=> string(10) "image/jpeg" } ["tmp_name"]=> array(4) { [0]=> string(51) "C:\Program Files (x86)\EasyPHP-12.1\tmp\phpF599.tmp" [1]=> string(51) "C:\Program Files (x86)\EasyPHP-12.1\tmp\phpF5B9.tmp" [2]=> string(51) "C:\Program Files (x86)\EasyPHP-12.1\tmp\phpF5D9.tmp" [3]=> string(51) "C:\Program Files (x86)\EasyPHP-12.1\tmp\phpF5DA.tmp" } ["error"]=> array(4) { [0]=> int(0) [1]=> int(0) [2]=> int(0) [3]=> int(0) } ["size"]=> array(4) { [0]=> int(63525) [1]=> int(153533) [2]=> int(7474) [3]=> int(63869) } }
Warning: trim() expects parameter 1 to be string, array given in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\provaF.php on line 45
Non hai selezionato nessun file!



ps: riuscite a provarlo?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 10 Lug 2013
  • #51
ciao
se la riga 45 è questa
PHP:
 if(trim($_FILES["image"]["name"]) == '')   
      {
togli quel trim, non puoi trimmare un array in quel modo
 
Ultima modifica: 10 Lug 2013
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 10 Lug 2013
  • #52
borgo italia ha scritto:
ciao
se la riga 45 è questa
PHP:
 if(trim($_FILES["image"]["name"]) == '')   
      {
togli quel trim, non puoi trimmare un array
Clicca per allargare...

tolto...l'errore seguente è:
Warning: is_uploaded_file() expects parameter 1 to be string, array given in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\provaF.php on line 49
Si sono verificati problemi nella procedura di upload!
su
PHP:
 else if(!is_uploaded_file($_FILES["image"]["tmp_name"]) or $_FILES["image"]["error"]>0)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 10 Lug 2013
  • #53
ciao
stesso discorso, non puoi verificare se è uplodato un array
$_FILES["image"]["tmp_name"] è un array ed anche $_FILES["image"]["error"]
tanto per farti un esempio se carichi due imm imm_1 e imm_2 la prima si carica la seconda no
avrai quindi
$_FILES["image"]["error"][0] ==> 0
$_FILES["image"]["error"][1] ==> 333
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 10 Lug 2013
  • #54
borgo italia ha scritto:
ciao
stesso discorso, non puoi verificare se è uplodato un array
$_FILES["image"]["tmp_name"] è un array ed anche $_FILES["image"]["error"]
tanto per farti un esempio se carichi due imm imm_1 e imm_2 la prima si carica la seconda no
avrai quindi
$_FILES["image"]["error"][0] ==> 0
$_FILES["image"]["error"][1] ==> 333
Clicca per allargare...

ehm....e come si risolve? :$
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
  • 10 Lug 2013
  • #55
ciao
per questo è facile
PHP:
<?php
$_FILES["image"]["name"]=array_map("trim",$_FILES["image"]["name"]);
?>
per l'aktro ci vuole un foreach, ci penso e forse ti so dire
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 10 Lug 2013
  • #56
borgo italia ha scritto:
ciao
per questo è facile
PHP:
<?php
$_FILES["image"]["name"]=array_map("trim",$_FILES["image"]["name"]);
?>
per l'aktro ci vuole un foreach, ci penso e forse ti so dire
Clicca per allargare...

se vuoi ti fornisco la tabella per provare direttamente gli errori
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
  • 10 Lug 2013
  • #57
trim su quello non andava perchè tolto il foreach in quella variabile ci sarà un vettore e non una stringa.
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 11 Lug 2013
  • #58
a me non funziona...:$ uff
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 15 Lug 2013
  • #59
Longo8 ha scritto:
trim su quello non andava perchè tolto il foreach in quella variabile ci sarà un vettore e non una stringa.
Clicca per allargare...

Nulla? nessuno riesce a farlo andare?? help pleaseee
 
K

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
  • 15 Lug 2013
  • #60
borgo italia ha scritto:
ciao
per questo è facile
PHP:
<?php
$_FILES["image"]["name"]=array_map("trim",$_FILES["image"]["name"]);
?>
per l'aktro ci vuole un foreach, ci penso e forse ti so dire
Clicca per allargare...

ciao sono andato avanti con il codice, per ora funzia una immagine, la carica sia nel db che nella cartella nel server. Unica cosa è come poter modificare in modo che carichi anche le altre 3?
PHP:
// limite peso in byte 
$peso_file = 1024 * 1024;
// inizializziamo il messaggio
$messaggio = "Carica una o piu immagini, fino ad un massimo di 4 consentite:";
// estensioni ammesse
$estensioni = array("jpg", "png", "bmp", "gif");
// percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto
$dir = "images_immobili";
// verifichiamo che sia stato premuto il submit
if (isset($_POST['submit'])) { // && $_POST['upload'] == "Carica immagini") {
    // azzeriamo il messaggio
    $messaggio = "";
    // recuperiamo e uniamo le informazionei sulle immagini
    $infoimages = array_combine($_FILES["image"]['name'], $_FILES["image"]['tmp_name']);
    // cicliamo le immagini
	$cnt=0;
    foreach ($infoimages as $k => $v) {
	if ($cnt < 4) {
		++$cnt;
        // nome del file
        $nomefile = strtolower($k);
		
        // controlliamo il peso immagine
        if (filesize($v) < $peso_file) {
            // recuperiamo l'estensione
            $estensionefile = pathinfo($nomefile, PATHINFO_EXTENSION);
            // controlliamo il tipo immagine
            if (in_array(strtolower($estensionefile), $estensioni)) {
                // controllo caricamento
                if (is_uploaded_file($v)) {
                    // spostiamo il file nella cartella immagini
                    if (!move_uploaded_file($v, "$dir/$nomefile")) {
                        $messaggio .= "<br/>Impossibile spostare il file $k";
                    } else {
                        $messaggio .= "<br/>Immagine $k caricata con successo";
						
						
                    }
                } else {
                    $messaggio .= "<br/>Errore nell'upload del file $k.";
					}
            } else {
                $messaggio .= "<br/>Tipo immagine non consentito : $k";
				}
        } else {
            $messaggio .= "<br/>Immagine $k non caricata : limite peso superato";
			}
	} else { $messaggio .= "<br/>Hai inserito più di 4 immagini";
		}
    }

}

nella query di INSERT INTO, nell record immagine metto images_immobili/$nomefile , però per i record img2,img3,im4 cosa metto?
 
Prec.
  • 1
  • 2
  • 3
  • 4
Succ.
Primo Prec. 3 di 4 Succ. Ultimo
Devi accedere o registrarti per poter rispondere.

Discussioni simili

N
problema script php mysql multi upload immagini
  • nobilebarabba
  • 10 Ott 2012
  • PHP
  • 2
Risposte
31
Visite
5K
PHP 15 Ott 2012
borgo italia
[PHP] multi lingue
  • ANDREA20
  • 15 Ott 2018
  • PHP
Risposte
1
Visite
1K
PHP 15 Ott 2018
Max 1
P
[PHP] Multi-session
  • perseoclub
  • 2 Lug 2017
  • PHP
Risposte
1
Visite
2K
PHP 2 Lug 2017
perseoclub
P
M
Multi PHP su IIS 6
  • memento00
  • 18 Mag 2009
  • Web Server
Risposte
1
Visite
4K
Web Server 19 Mag 2009
pgmalusardi
P
H
Need Help with PHP Database Connection Issues
  • hellmmithha
  • 19 Dic 2024
  • PHP
Risposte
1
Visite
662
PHP 21 Mar 2025
therope
T
F
Cerco Hosting con VECCHIE versioni di php
  • frk
  • 4 Mar 2024
  • Hosting
Risposte
0
Visite
2K
Hosting 4 Mar 2024
frk
F
Captcha php
  • Cosina
  • 21 Gen 2024
  • PHP
Risposte
1
Visite
2K
PHP 22 Gen 2024
WmbertSea
S
passare un valore da un form a un file .php con metodo post
  • smack2005
  • 15 Nov 2023
  • PHP
Risposte
4
Visite
1K
PHP 23 Nov 2023
zorro
N
php msyql
  • nik13
  • 10 Ott 2023
  • PHP
Risposte
6
Visite
2K
PHP 23 Ott 2023
zorro
N
php problemi a visualizzare video
  • nik13
  • 8 Ott 2023
  • PHP
Risposte
3
Visite
2K
PHP 11 Ott 2023
WmbertSea
A
menu a tendina php
  • Annama74
  • 30 Apr 2023
  • PHP
Risposte
1
Visite
2K
PHP 1 Mag 2023
marino51
D
  • Bloccata
protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito
  • dastur67
  • 5 Apr 2023
  • Web Server
Risposte
1
Visite
3K
Web Server 5 Apr 2023
dastur67
D
F
Php date_diff
  • Fra_23
  • 30 Mar 2023
  • PHP
Risposte
1
Visite
1K
PHP 31 Mar 2023
marino51
K
[PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa
  • Kiko74b
  • 16 Mar 2023
  • PHP
Risposte
2
Visite
2K
PHP 18 Mar 2023
Kiko74b
K
C
Wp-admin a file php
  • Cpu03
  • 25 Gen 2023
  • WordPress
Risposte
5
Visite
4K
WordPress 6 Mar 2023
Cpu03
C
[Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress
  • Lino80
  • 9 Gen 2023
  • Offerte e Richieste di Lavoro e/o Collaborazione
Risposte
0
Visite
3K
Offerte e Richieste di Lavoro e/o Collaborazione 9 Gen 2023
Lino80
Inviare file jpg in locale alla stampante con php
  • csi
  • 14 Dic 2022
  • PHP
Risposte
0
Visite
917
PHP 14 Dic 2022
csi
M
Passaggio variabili array php su un tasto jq
  • maubox8
  • 9 Dic 2022
  • PHP
Risposte
3
Visite
1K
PHP 10 Dic 2022
maubox8
M
E
Php aggiornamento tabella
  • Emanuele85
  • 1 Dic 2022
  • PHP
Risposte
9
Visite
2K
PHP 2 Dic 2022
WmbertSea
G
phpmailer e php 8.1 con estensione mysqli
  • giacomo9783
  • 24 Nov 2022
  • PHP
Risposte
6
Visite
2K
PHP 5 Dic 2022
giacomo9783
G
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?