28. april 2009 - 09:15
Der er
8 kommentarer og 1 løsning
Flere billeder på scriptet.
Jeg har den her billedeupload kode, som jeg endda også har fået meget hjælp til herinde. Lige nu virker den præcis som jeg vil have den til. man kan uploade billeder, og tekst. Og selvom tekst er uploadet og man ikke ønsker et billede, indsætter den bare ikke i billeder. Men nu vil jeg have man kan uploade flere fotos, dvs. det skal stadig være sådan at jeg også kan indsætte tekst i tabellen uden at vælge at uploade fotos, men at jeg har mulighed for at uploade et foto mere fx. Har bare siddet med det her i flere timer og prøvet mig frem og synes godt nok det er frustrerende, når tingene ikke virker, så jeg håber der er nogen der kan hjælpe mig... ;( <?php $allowedFileTypes = array('jpg','gif','png'); $uploadDir = '../pic/biler/'; //Er der trykket på Upload file knappen? if(isset($_POST['Submit'])){ //Har vi en fil? if(is_uploaded_file($_FILES['billede1']['tmp_name'])){ //Filendelse $extension = strtolower(pathinfo($_FILES['billede1']['name'],PATHINFO_EXTENSION)); //Er filen en af de filer vi gerne vil have? if(in_array($extension,$allowedFileTypes)){ if( file_exists("../pic/biler/" . $_FILES['billede1']['name'])){ $filnavn = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['billede1']['name']; }else{ $filnavn = basename($_FILES['billede1']['name']); } //Vi flytter filen fra tmp til vores UPLOADDIR if(move_uploaded_file($_FILES['billede1']['tmp_name'],$uploadDir . $filnavn)) { $overskrift = mysql_real_escape_string($_POST["overskrift"]); $maerke = mysql_real_escape_string($_POST["maerke"]); $aargang = mysql_real_escape_string($_POST["aargang"]); $model = mysql_real_escape_string($_POST["model"]); $farve = mysql_real_escape_string($_POST["farve"]); $km = mysql_real_escape_string($_POST["km"]); $pris = mysql_real_escape_string($_POST["pris"]); mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error()); echo '<h3 style="color:green;">File ('.basename($_FILES['billede1']['name']).') Billedet blev uploadet </h3>'; }else{ echo '<h3 style="color:red;">Fejl - Billedet kan ikke uploades: '.basename($_FILES['billede1']['name']).'</h3>'; } }else{ echo '<h3 style="color:red;">Forkert filtype, gyldige filtyper er: ('.implode(',',$allowedFileTypes).')</h3>'; } }else{ $description = mysql_real_escape_string($_POST['description']); $overskrift = mysql_real_escape_string($_POST["overskrift"]); $maerke = mysql_real_escape_string($_POST["maerke"]); $aargang = mysql_real_escape_string($_POST["aargang"]); $model = mysql_real_escape_string($_POST["model"]); $farve = mysql_real_escape_string($_POST["farve"]); $km = mysql_real_escape_string($_POST["km"]); $pris = mysql_real_escape_string($_POST["pris"]); mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error()); echo '<h3 style="color:red;">Ingen billeder er valgt</h3>'; } } ?>
Annonceindlæg fra Kingston Technology
28. april 2009 - 09:49
#1
Du skal starte med at udbygge din form. Den skal så i stedet for: <input type="file" name="billede1" /> Evt. hedde: Billede 1<input type="file" name="billede[]" /> Billede 2<input type="file" name="billede[]" /> osv... alt efter hvor mange billeder du ønsker. Så skal upload scriptet rettes til: <?php $allowedFileTypes = array('jpg','gif','png'); $uploadDir = '../pic/biler/'; //Er der trykket på Upload file knappen? if(isset($_POST['Submit'])){ //Har vi en fil? for($i = 0; $i < count($_FILES['billede']); $i++){ if(is_uploaded_file($_FILES['billede'][$i]['tmp_name'])){ //Filendelse $extension = strtolower(pathinfo($_FILES['billede'][$i]['name'],PATHINFO_EXTENSION)); //Er filen en af de filer vi gerne vil have? if(in_array($extension,$allowedFileTypes)){ if( file_exists("../pic/biler/" . $_FILES['billede'][$i]['name'])){ $filnavn = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['billede'][$i]['name']; }else{ $filnavn = basename($_FILES['billede'][$i]['name']); } //Vi flytter filen fra tmp til vores UPLOADDIR if(move_uploaded_file($_FILES['billede1']['tmp_name'],$uploadDir . $filnavn)){ $overskrift = mysql_real_escape_string($_POST["overskrift"]); $maerke = mysql_real_escape_string($_POST["maerke"]); $aargang = mysql_real_escape_string($_POST["aargang"]); $model = mysql_real_escape_string($_POST["model"]); $farve = mysql_real_escape_string($_POST["farve"]); $km = mysql_real_escape_string($_POST["km"]); $pris = mysql_real_escape_string($_POST["pris"]); mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error()); echo '<h3 style="color:green;">File ('.basename($_FILES['billede'][$i]['name']).') Billedet blev uploadet </h3>'; }else{ echo '<h3 style="color:red;">Fejl - Billedet kan ikke uploades: '.basename($_FILES['billede'][$i]['name']).'</h3>'; } }else{ echo '<h3 style="color:red;">Forkert filtype, gyldige filtyper er: ('.implode(',',$allowedFileTypes).')</h3>'; } }else{ $description = mysql_real_escape_string($_POST['description']); $overskrift = mysql_real_escape_string($_POST["overskrift"]); $maerke = mysql_real_escape_string($_POST["maerke"]); $aargang = mysql_real_escape_string($_POST["aargang"]); $model = mysql_real_escape_string($_POST["model"]); $farve = mysql_real_escape_string($_POST["farve"]); $km = mysql_real_escape_string($_POST["km"]); $pris = mysql_real_escape_string($_POST["pris"]); mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."')")or die(mysql_error()); echo '<h3 style="color:red;">Ingen billeder er valgt</h3>'; } } } ?>
28. april 2009 - 10:04
#2
Det er så hvis jeg skal have uploadet som f.eks i et galleri. Hvad hvis jeg i tabellen har en der hedder billede1 og en der hedder billede2?
28. april 2009 - 10:19
#3
Så kan du "bare" tilføje et ekstra type="file" name="billede2" Og kalde upload koden 2 gange, og rette billede1 til billede2.
28. april 2009 - 10:21
#4
okey super ;-) tak .. jeg prøver
28. april 2009 - 11:19
#5
Jeg har prøvet mig frem og synes noget af det her var det tætteste jeg kunne komme, forstår ikke helt syntaxen, hvordan man "kan" skrive det, hmm noget er ihvartfald helt galt, siden vises ikke. <?php $allowedFileTypes = array('jpg','gif','png'); $uploadDir = '../pic/biler/'; //Er der trykket på Upload file knappen? if(isset($_POST['Submit'])){ //Har vi en fil? if(is_uploaded_file($_FILES['billede1']['tmp_name']&& $_FILES['billede2']['tmp_name'] )){ //Filendelse $extension = strtolower(pathinfo($_FILES['billede1']['name'],PATHINFO_EXTENSION && $_FILES['billede2']['name'],PATHINFO_EXTENSION); //Er filen en af de filer vi gerne vil have? if(in_array($extension,$allowedFileTypes)){ if( file_exists("../pic/biler/" . $_FILES['billede1']['name'] && $_FILES['billede2']['name'] )){ $filnavn = substr( md5( time() ), 0, 10 ) . '_' . $_FILES['billede1']['name'] && $_FILES['billede2']['name']; }else{ $filnavn = basename($_FILES['billede1']['name']&& $_FILES['billede2']['name']); } //Vi flytter filen fra tmp til vores UPLOADDIR if(move_uploaded_file($_FILES['billede1'] && $_FILES['billede1']['tmp_name'],$uploadDir . $filnavn) ) { $overskrift = mysql_real_escape_string($_POST["overskrift"]); $maerke = mysql_real_escape_string($_POST["maerke"]); $aargang = mysql_real_escape_string($_POST["aargang"]); $model = mysql_real_escape_string($_POST["model"]); $farve = mysql_real_escape_string($_POST["farve"]); $km = mysql_real_escape_string($_POST["km"]); $pris = mysql_real_escape_string($_POST["pris"]); mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1, billede2 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."', '".$filnavn."')")or die(mysql_error()); echo '<br /><div id="nyhed_rettet">File ('.basename($_FILES['billede1']['name']).') Billedet blev uploadet </div>'; }else{ echo '<br /><div id="nyhed_rettet">Fejl - Billedet kan ikke uploades: '.basename($_FILES['billede1']['name']).'</div>'; } }else{ echo '<br /><div id="nyhed_rettet">Forkert filtype, gyldige filtyper er: ('.implode(',',$allowedFileTypes).')</div>'; } }else{ $description = mysql_real_escape_string($_POST['description']); $overskrift = mysql_real_escape_string($_POST["overskrift"]); $maerke = mysql_real_escape_string($_POST["maerke"]); $aargang = mysql_real_escape_string($_POST["aargang"]); $model = mysql_real_escape_string($_POST["model"]); $farve = mysql_real_escape_string($_POST["farve"]); $km = mysql_real_escape_string($_POST["km"]); $pris = mysql_real_escape_string($_POST["pris"]); mysql_query("INSERT INTO biler (overskrift, maerke, aargang, model, farve, km, pris, billede1, billede2 ) VALUES ('".$overskrift."', '".$maerke."', '".$aargang."', '".$model."', '".$farve."', '".$km."', '".$pris."', '".$filnavn."', '".$filnavn."')")or die(mysql_error()); echo '<br /><div id="nyhed_rettet">Informationer er gemt, ingen billeder var valgt</div>'; } } ?>
28. april 2009 - 11:47
#6
Så er der nok en fejl. Jeg tror desværre du må satse på at lære lidt mere selv. Jeg servere stort set tingene på et sølvfad til dig gang på gang. Og du bør kunne finde små fejl selv. Har du error reporting aktiveret på din server ?
28. april 2009 - 15:43
#7
Ja jeg finder det vel nok, nej det tror jeg ikke jeg har, jeg bruger one.com Tak for hjælpen, Smid et svar
28. april 2009 - 21:10
#8
Svar!
29. april 2009 - 10:14
#9
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling