Come caricare immagini e video

ciao
ecco un'altra parte di script per caricare le foto e fare le miniature, va inserito nell'ultimo script che ti ho postato (spero che tu capisca dove)
per le tumb uso il metodo che avresti dovuto trovare qui su mrwm adattao per ciclre più immagini
PHP:
<?php
//................
if(isset($_POST['submit'])){
	//var_dump($_FILES['immagine']);
	if(verifica_immagini($_FILES['immagine'])){
		$immagini=verifica_immagini($_FILES['immagine']);
		//e quindi le tratto
		require_once 'function.php';//carico la funzione per le tumb (quella di mrwm)
		$cartella="foto/";//il nome della cartella in cui andranno le immagini
		foreach($immagini as $chiave => $valore){//dove $chiave = 1,3,4,5,7... cioè le rimaste non unsettate
			$imm=$cartella.$immagini['name'][$chiave];
			if(file_exists($imm)){//se non metti, perchè non ti serve, questo if/else sovrascrivi l'esistente
				$nome=$chiave."_".$immagini['name'][$chiave];//o altro metodo
			}else{
				$nome=$immagini['name'][$chiave];
			}
			if(copy($immagini['tmp_name'][$chiave], $cartella.$nome)){//copio l'immagine nella cartella
				echo "l'immagine $nome salvata in $cartella<br>";
			}else{
				echo "l'immagine $nome NON è stata salvata<br>";
			}
			//qui puoi creare la tumb con lo script di mrwm
			$nome = addslashes($nome);
			$path = addslashes($cartella.$nome);
			$tipo = addslashes($immagini['type'][$chiave]);
			makeThumb($cartella,$path,$nome,$tipo);//creo la miniatura
		}//fine foreach immagini
	}else{
		echo "non ci sono immagini<br>";
//.........
?>
verifica (eventualmente mettendo dei var_dump) perchè lavorando con gli array di array è facile fare errori
 
Ciao

Ciao,

Per adesso ti ringrazio, faccio il solito pisolino e dopo provo lo script, così ti so dire se va o meno, ma quell'errore che mi dava di scritte visibili come hai potuto vedere dallla foto che ti ho fatto, da cosa potrebbe essere causato ?????
 
ciao
non avevo visto la tua risposta.
comunque un passo alla volta.
quello che ho fatto va integrato con il tuo form di inserimento.
poi una cosa: hai provato a inseririe oltre alle immagini qualcosaltro (es un file .txt)? verifica se questo sparisce dall'array

dimenticavo:
quelle scritte probabilmente provengono da un var_dump che non hai tolto o commentato
 
Ultima modifica:
Ciao

Ciao,

Tranqy, ci provo allora dopo. Intanto l'ultimo script che mi hai mandato l'ho inserito sotto così:

PHP:
<form action='<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>' method='POST' enctype='multipart/form-data'>
    Immagine 1: <input name='immagine[]'  type='file' multiple='multiple'/> <br> <br>
    <input name='submit' type='submit' value='Salva' />
</form>
[ATTACH]1176[/ATTACH]
if(isset($_POST['submit'])){
    //var_dump($_FILES['immagine']);
    if(verifica_immagini($_FILES['immagine'])){
        $immagini=verifica_immagini($_FILES['immagine']);
        //e quindi le tratto
        require_once 'function.php';//carico la funzione per le tumb (quella di mrwm)
        $cartella="foto/";//il nome della cartella in cui andranno le immagini
        foreach($immagini as $chiave => $valore){//dove $chiave = 1,3,4,5,7... cioè le rimaste non unsettate
            $imm=$cartella.$immagini['name'][$chiave];
            if(file_exists($imm)){//se non metti, perchè non ti serve, questo if/else sovrascrivi l'esistente
                $nome=$chiave."_".$immagini['name'][$chiave];//o altro metodo
            }else{
                $nome=$immagini['name'][$chiave];
            }
            if(copy($immagini['tmp_name'][$chiave], $cartella.$nome)){//copio l'immagine nella cartella
                echo "l'immagine $nome salvata in $cartella<br>";
            }else{
                echo "l'immagine $nome NON è stata salvata<br>";
            }
            //qui puoi creare la tumb con lo script di mrwm
            $nome = addslashes($nome);
            $path = addslashes($cartella.$nome);
            $tipo = addslashes($immagini['type'][$chiave]);
            makeThumb($cartella,$path,$nome,$tipo);//creo la miniatura
        }//fine foreach immagini
    }else{
        echo "non ci sono immagini<br>";
 
Ciao

Io ho mewsso così,

ma sicuramente è sbagliato....

PHP:
<?php
function verifica_immagini($imm){
    $ammesse=array("image/gif","image/jpeg","image/pjpeg","image/png");
    $conta=0;
    //var_dump($imm);
    foreach($imm['type'] as $tipo){
            if(!in_array($tipo,$ammesse)){
                unset($imm['name'][$conta]);
                unset($imm['type'][$conta]);
                unset($imm['tmp_name'][$conta]);
                unset($imm['error'][$conta]);
                unset($imm['size'][$conta]);
            }
        $conta++;
    }//fine foreach
    $rimaste=count($imm['name']);//conte se sono rimaste immagini
    if($rimaste > 0){
        //ci sono delle immagini valide
        return $imm;//ritorno l'array rimasto
    }else{
        return false;
    }
}//fine function
if(isset($_POST['submit'])){
    //var_dump($_FILES['immagine']);
    if(verifica_immagini($_FILES['immagine'])){

        $immagini=verifica_immagini($_FILES['immagine']);
        print_r($immagini); echo "<br>";
        //e quindi le tratto
    }else{
        echo "non ci sono immagini<br>";
        //e qui da decidere cosa fare se non ci sono immagini
    }
}
?>
<form action='<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>' method='POST' enctype='multipart/form-data'>
    Immagine 1: <input name='immagine[]'  type='file' multiple='multiple'/> <br> <br>
    <input name='submit' type='submit' value='Salva' />
</form>
<?php
    if(verifica_immagini($_FILES['immagine'])){
        $immagini=verifica_immagini($_FILES['immagine']);
        //e quindi le tratto
        require_once 'function.php';//carico la funzione per le tumb (quella di mrwm)
        $cartella="foto/";//il nome della cartella in cui andranno le immagini
        foreach($immagini as $chiave => $valore){//dove $chiave = 1,3,4,5,7... cioè le rimaste non unsettate
            $imm=$cartella.$immagini['name'][$chiave];
            if(file_exists($imm)){//se non metti, perchè non ti serve, questo if/else sovrascrivi l'esistente
                $nome=$chiave."_".$immagini['name'][$chiave];//o altro metodo
            }else{
                $nome=$immagini['name'][$chiave];
            }
            if(copy($immagini['tmp_name'][$chiave], $cartella.$nome)){//copio l'immagine nella cartella
                echo "l'immagine $nome salvata in $cartella<br>";
            }else{
                echo "l'immagine $nome NON è stata salvata<br>";
            }
            //qui puoi creare la tumb con lo script di mrwm
            $nome = addslashes($nome);
            $path = addslashes($cartella.$nome);
            $tipo = addslashes($immagini['type'][$chiave]);
            makeThumb($cartella,$path,$nome,$tipo);//creo la miniatura
        }//fine foreach immagini
    }else{
        echo "non ci sono immagini<br>";
         }
        ?>
 
ciao
non mi sembra che tu l'abbia inserito bene.
se guardi l'ultimo script che ti ho inviato
scrivo solo una parte

PHP:
    //var_dump($_FILES['immagine']); 
    if(verifica_immagini($_FILES['immagine'])){ 
         
        $immagini=verifica_immagini($_FILES['immagine']); 
        print_r($immagini); echo "<br>"; 
        //e quindi le tratto 
    }else{ 
        echo "non ci sono immagini<br>"; 
        //e qui da decidere cosa fare se non ci sono immagini 
    } 
}
l'ultima parte va inserita tra $immagini=verifica_immagini($_FILES['immagine']); e //e quindi le tratto al posto di print_r($immagini); echo "<br>";
è evidente che devi estrapolare cioè non riprtere quello che c'è di già
comunque prima di inserirlo nel tuo lavoro, fai delle prove e verifica se ti salva l'immagine grande e le miniature
dimenticavo ricordati di uncluder il file con la funzione maketumb
 
ciao
Ok, ora ci provo sperando di riattivare il synology, ho toccato qualcosa e non riesco più a vederlo . Spero di non aver fatto casini
intanto una cosa: ma non puoi caricarti easy o appserver o qualsiasi altra cosa per lavorare in locale?
poi leggi per bene il codice es. si prima ti invio
PHP:
<?php
if($pinco="pallo"){
 echo "qui sono in pallo";
}else{
 echo "sofonisba";
}
?>
e poi ti mando per aggiungere
PHP:
<?php
if($pinco="pallo"){
 echo "qui sono in pallo";
 if(isset($_POST['pallino'])){
   echo "ma anche in pallino";
}
}else{
//....
dovresti capire dove vanno le nuove istruzioni, ne in fondo ne in cima ma (in questo caso) appena sotto echo "qui sono in pallo"; evidentemente senza ripetere le istruzioni duplicate
 
Ciao

Lavoravo prima con xampp come in locale, solo che dall'esterno (visto che vado ad Anzio), non ci arrivo non lasciando il pc accesso. invece, mettendo tutto sul synology, tutte le modifiche che faccio sia dal fisso che dal portatile, vanno a salvarsi per l'appunto sul synolgy. E non solo, ma dall'esterno, quindi su tutto il globo terrestre, forse anche sulla luna e marte, se ho bisogno di prelevare i dati indovina da dove li prelievo ???? Sempre dal synology. invece di portarmi gli hard disk esterni o chiavette. Inotre, sono riuscito a configurarlo in modo tale che digitando un certo indirizzo, lo vedo come pagina web normale, non in locale ma bensì online. Non trovi che sia più comodo. ??? Stavo capendo come configurarlo per mandare l'email, perchè può fare anche da invio email, nel caso che ti dicevo prima della registrazione. E accettazione delle persone. Solo che non essendo esperto, ho fatto un po' di casino che adesso sembra che abbia risolto. purtroppo c'è l'ho a mezzi con mio padre e quindi devo dare precedenza assoluta a riattivarlo. Cosa che ho fatto. Perdonami ma gli esempi servono solo per capire come sostituire le cose che mi mandi ????
 
Ciao

Ri-ciao,

Scusa se ti riscrivo di nuovo. Allora c'è un progresso. Credo di avere capito come andava corretto, distrazione mia del dopo pisolino (fra le altre cose pisolato anche male). Le immaggini che seleziono, vengono credo in qualche modo salvate. In quando una volta che premo "salva", sparisce il tutto senza nessun errorre. Mi ero inoltre dimenticato di mettere la cartella giusta delle foto eheheeh "foto" in "Foto". Ora ti riposto il tutto in formtato txt in modo tale che mi puoi dire se ho fatto giusto la modifica e credo anche di avere capito il piccolo esempio che mi hai postato prima. Il synology, come vedi, l'ho ripristinato per fortuna. Ora controllo se le foto sono salvate innanzi tutto nella cartella di destinazione, ma non credo nel db perchè non c'è nessuna query al riguardo. La cartella "Foto", come presumevo è vuota. Perchè dove cacchio sbaglio ????
 
ciao

intanto una cosa: ma non puoi caricarti easy o appserver o qualsiasi altra cosa per lavorare in locale?
poi leggi per bene il codice es. si prima ti invio
PHP:
<?php
if($pinco="pallo"){
 echo "qui sono in pallo";
}else{
 echo "sofonisba";
}
?>
e poi ti mando per aggiungere
PHP:
<?php
if($pinco="pallo"){
 echo "qui sono in pallo";
 if(isset($_POST['pallino'])){
   echo "ma anche in pallino";
}
}else{
//....
dovresti capire dove vanno le nuove istruzioni, ne in fondo ne in cima ma (in questo caso) appena sotto echo "qui sono in pallo"; evidentemente senza ripetere le istruzioni duplicate
Ciao,

Finalmente ho provato l'esempio che mi hai messo, non so se intendevi in questa maniera da sostituire o correggere:

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
  <?php
[B]if($pinco="pallo"){[/B]
 echo "qui sono in pallo";
 if(isset($_POST['pallino'])){
   echo "ma anche in pallino";
}
}else{
 echo "sofonisba";
}
?> 
    </body>
</html>
Sull'if che ti ho segnalato in grassetto, mi da un triangolino giallo e in pratica non mi da mai la seconda scelta ossia dove dice: echo "sofonisba"; Mi da solo sono in pallo.

In pratica quello che netbeans mi segnala è la seguente riga:

PHP:
if($pinco="pallo"){
 
Ciao

Ciao,

Sono di nuovo tornato. Sono sempre rimasto bloccato al punto dove c'eravamo lasciati, ma speravo in un tuo aiuto e poi con un po' di problemi, mi sono tralsciato il lavoro alle spalle. Solo ora sto riprendendo sul linguyaggio. il problema fondamentale, dopo aver risolto alla grande l'accesso con la visualizzazione del nome, è quello di caricare le immagini e di fare una Thumbnai. Inserendo i titoli nelle foto. Mi puoi sempre dare una mano per favore ??? Aspoetto una tua risposta, grazie. In attesa, ti auguro una buona serata.
 
ciao
scusa me me ne sono accorto ora, nell'if dell'esempio correggi
$pinco="pallo"
in
$pinco=="pallo"
poi specifica meglio il tuo problema
 
per l'upload multiplo ..

ciao, non ho letto tutto il topic ma poco poco..

ti allego il codice che avevo io quando programmavo in asp net e poi dopo sono passato a php per via di libertà e semplicità.

questo non lo testato , ma con il php basta che fai un'array sul pulsante etc..
non chiedermi come si fa.. perché anche io sto imparando il php..

devi sistemare un pò e dimmi se vi riuscite e cosi lo posso usare anche io..

ecco il codice:
PHP:
<!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">
<head>
    <title>Multi File Upload</title>
</head>
<body>
<form id="form1"  enctype="multipart/form-data">
<p id="upload-area">
   <input id="File1" type="file"  size="60" />
</p>

<input id="AddFile" type="button" value="Add file" onclick="addFileUploadBox()" />
<p><input id="btnSubmit" type="submit" value="upload"></p>
<span id="Span1"  />

<script type="text/javascript">
function addFileUploadBox()
{
    if (!document.getElementById || !document.createElement)
        return false;
		
    var uploadArea = document.getElementById ("upload-area");
	
    if (!uploadArea)
        return;

    var newLine = document.createElement ("br");
    uploadArea.appendChild (newLine);
	
    var newUploadBox = document.createElement ("input");
	
    // Set up the new input for file uploads
    newUploadBox.type = "file";
    newUploadBox.size = "60";
	
    // The new box needs a name and an ID
    if (!addFileUploadBox.lastAssignedId)
        addFileUploadBox.lastAssignedId = 100;
	    
    newUploadBox.setAttribute ("id", "dynamic" + addFileUploadBox.lastAssignedId);
    newUploadBox.setAttribute ("name", "dynamic:" + addFileUploadBox.lastAssignedId);
    uploadArea.appendChild (newUploadBox);
    addFileUploadBox.lastAssignedId++;
}
</script>
</form>
</body>
</html>

ciao,, vedi se ti riesce a far qualcosa.. testalo cosi come è.

ciao, buona serata.
 
ciao
ho fatto delle piccole correzioni e funziona.
comunque, secondo me, conviene operare con gli array (come ho modificato)
PHP:
<!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">
<head>
    <title>Multi File Upload</title>
</head>
<body>
<?php
if(isset($_POST['btnSubmit'])){
	foreach($_FILES['dynamic'] as $chi_1 => $val_1){
		echo "$chi_1:<br>";
			foreach($val_1 as $chi_2 => $val_2){
				echo "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chi_2 -> $val_2<br>";
			}
	}
}
?>
<form id="form1"  enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p id="upload-area">
   <input name="dynamic[1]" id="dynamic" type="file"  size="60" />
</p>

<input name="AddFile" id="AddFile" type="button" value="Add file" onclick="addFileUploadBox()" />
<p><input name="btnSubmit" id="btnSubmit" type="submit" value="upload"></p>
<span id="Span1"  />

<script type="text/javascript">
function addFileUploadBox()
{
    if (!document.getElementById || !document.createElement)
        return false;
        
    var uploadArea = document.getElementById ("upload-area");
    
    if (!uploadArea)
        return;

    var newLine = document.createElement ("br");
    uploadArea.appendChild (newLine);
    
    var newUploadBox = document.createElement ("input");
    
    // Set up the new input for file uploads
    newUploadBox.type = "file";
    newUploadBox.size = "60";
    
    // The new box needs a name and an ID
    if (!addFileUploadBox.lastAssignedId)
        addFileUploadBox.lastAssignedId = 100;
        
    newUploadBox.setAttribute ("id", "dynamic" + addFileUploadBox.lastAssignedId);
    newUploadBox.setAttribute ("name", "dynamic[" + addFileUploadBox.lastAssignedId+"]");
    uploadArea.appendChild (newUploadBox);
    addFileUploadBox.lastAssignedId++;
}
</script>
</form>
</body>
</html>
dando il submit vedi il risultato dei foreach
 
Ciao

Ciao Borgo,

Il mio problema è semplice. Cerco di spiegarmi meglio. Allora, hai presente facebook ???? Ecco dovrei fare una cosa del genere. Però considera una cosa, che quando carichi la foto su facebook, il nome te lo da in automatico, invece a me servirebbe che glielo dessi io. In più, invece di uploadare un'immagine alla volta, vorrei fare una multiselezione d'immagini, memorizzando i link delle foto nel database. Inoltre, le miniature delle foto che quando ci passi, clicchi sopra la foto e s''ingrandisce. Questo per adesso quello che vorrei cercare di fare ma fino ad ora non sono riuscito a trovare un esempio funzionante come dico io. Spero di essere stato chiaro nell'esporre il problema.
 
Ciao

Ciao,

Finalmente ho provato l'esempio che mi hai messo, non so se intendevi in questa maniera da sostituire o correggere:

PHP:
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
  <?php
[B]if($pinco="pallo"){[/B]
 echo "qui sono in pallo";
 if(isset($_POST['pallino'])){
   echo "ma anche in pallino";
}
}else{
 echo "sofonisba";
}
?> 
    </body>
</html>
Sull'if che ti ho segnalato in grassetto, mi da un triangolino giallo e in pratica non mi da mai la seconda scelta ossia dove dice: echo "sofonisba"; Mi da solo sono in pallo.

In pratica quello che netbeans mi segnala è la seguente riga:

PHP:
if($pinco="pallo"){

La risposta, anche se in ritardo, è no. Al fatto di caricare xampp o apache. In quanto, non molto spesso, ma ogni tanto vado in giro anche io e ho bisogno di accedere al synology, senza portarmi ogni voltaa le chiavette o hard disk per poi dimenticarmi la roba sul portatile. Invece così, viene salvato tutto direttamente sul synology.
 

Discussioni simili