18. september 2006 - 16:10
Der er
21 kommentarer og 1 løsning
Multiple billede-upload
Hejsa, jeg ved godt at dette er besvaret før, men jeg har ikke rigtigt kunne få det til at fungere i mit script. Er der nogen der kan hjælpe mig med at indføre multi-upload i dette script: if(is_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'])) { $dist = $HTTP_SERVER_VARS['DOCUMENT_ROOT']."/images/userpics/"; $billede = $HTTP_POST_FILES['upfile']['name']; $extension = substr($HTTP_POST_FILES['upfile']['name'], -3); $filnavn = date("YmdHis").".".$extension; //Hvis der skal slettes et billede bruges denne formular //unlink($_SERVER["DOCUMENT_ROOT"] ."/images/". $_POST["billednavn"]);} if($extension == "jpg" || $extension == "png" || $extension == "gif") { move_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'], $dist.$filnavn); $besked = "$billedeurl er blevet uploadet med succes!"; }else{ $filnavn = ""; $billede = ""; } } $dato = $_REQUEST['dato']; $kategori = checkInput($kategori, '', '', "javascript", false); $dato = checkInput($dato, '', '', "javascript", false); $udgiver = checkInput($udgiver, '', '', "javascript", false); $titel = checkInput($titel, '', '', "javascript", false); $beskrivelse = checkInput($beskrivelse, '', 'yes', "javascript", false); $rider = checkInput($rider, '', '', "javascript", false); $fotograf = checkInput($fotograf, '', '', "javascript", false); $sted = checkInput($sted, '', '', "javascript", false); // Indsættes i database til retning af billede $db->query("INSERT INTO oak_billeder VALUES ('', '$kategori', '$dato', '$udgiver', '$filnavn', '$titel', '$beskrivelse', '$rider', '$fotograf', '$sted')");
Annonceindlæg fra Barco
18. september 2006 - 16:18
#1
Du kan måske tilpasse dette script: <?php $targetDir = 'ud/'; // Replace with your output directory, must be writable! if ( !empty( $_FILES['ufile'] ) ) { $files = $_FILES['ufile']; $n = count( $files ); for ( $i = 0; $i < $n; $i++ ) { if ( is_uploaded_file( $files['tmp_name'][$i] ) ) { if ( move_uploaded_file( $files['tmp_name'][$i], $targetDir . basename( $files['name'][$i] ) ) ) { echo "Uploaded " . $files['name'][$i] . "...<br>"; } else { echo "Failed uploading " . $files['name'][$i] . "...<br>"; } } } } ?> <form enctype="multipart/form-data" method="post"> <input type="file" name="ufile[]"><br> <input type="file" name="ufile[]"><br> <input type="file" name="ufile[]"><br> <input type="file" name="ufile[]"><br> <input type="file" name="ufile[]"><br> <input type="file" name="ufile[]"><br> <input type="submit" value="Upload"> </form>
18. september 2006 - 16:22
#2
hm ja, jeg kan lige prøve at kigge på det.. tak
18. september 2006 - 17:51
#3
nej, jeg kan ikke lige gennemskue hvad der er hvad. jeg er ny i php.. mit script er forresten blevet ændret siden sidst, så hvis der er nogen der stadigvæk gider at give sig tid til at modificere det til et multi-upload script så er det her: if(is_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'])) { $dist = $HTTP_SERVER_VARS['DOCUMENT_ROOT']."/nikk/images/galleripics/"; $billede = $HTTP_POST_FILES['upfile']['name']; $extension = substr($HTTP_POST_FILES['upfile']['name'], -3); $filnavn = date("YmdHis").".".$extension; //Hvis der skal slettes et billede bruges denne formular //unlink($_SERVER["DOCUMENT_ROOT"] ."/images/". $_POST["billednavn"]);} if($extension == "jpg" || $extension == "png" || $extension == "gif") { move_uploaded_file($HTTP_POST_FILES['upfile']['tmp_name'], $dist.$filnavn); $besked = "$billedeurl er blevet uploadet med succes!"; }else{ $filnavn = ""; $billede = ""; } } $billededato = $_REQUEST['billededato']; $billedested = checkInput($billedested, '', '', "javascript", false); $billededato = checkInput($billededato, '', '', "javascript", false); $billedetitel = checkInput($billedetitel, '', '', "javascript", false); $billedebeskrivelse = checkInput($billedebeskrivelse, '', 'yes', "javascript", false); $billedeuge = checkInput($billedeuge, '', '', "javascript", false); // Indsættes i database til retning af billede $db->query("INSERT INTO nikksite_billeder VALUES ('', '$billedested', '$billededato', '$filnavn', '$billedetitel', '$billedebeskrivelse', '$billedeuge')"); $site_body = "<font class=txt><p align=center><b>Dit billede er tilføjet!</b></p></font></font>"; redirect('index.php?action=admin&sub=galleri', 4, X_REDIRECT_JS); Og dertil følgende upload-formular: <tr> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billededato" value="$datoen" size="10" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><select size="1" name="billedested"> <option value="valdisere0607">Val d'Isere 06/07</option> <option value="alpedhuez0405">Alpe d'Huez 04/05</option> </select></td> <td bgcolor="$altbg2" class="tablerow" align="center"><input name="upfile" type="file" size="20" style="width: 200px"></td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedetitel" size="15" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><textarea rows="2" name="billedebeskrivelse" cols="20"></textarea></td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedeuge" value="$ugenr" size="1" /></td> </tr> Jeg håber MEGET er der er nogen som kan hjælpe. Jeg er sgu' gået lidt kold i det..
18. september 2006 - 18:44
#4
Jeg vil gerne give ekstra point op til de 200 til den der får det her til at fungere!
18. september 2006 - 21:01
#5
Prøv: <?php $targetDir = $_SERVER['DOCUMENT_ROOT']."/nikk/images/galleripics/"; $besked = ""; if ( !empty( $_FILES['upfile'] ) ) { $files = $_FILES['upfile']; $n = count( $files ); for ( $i = 0; $i < $n; $i++ ) { if ( is_uploaded_file( $files['tmp_name'][$i] ) ) { $billede = $files['name'][$i]; $extension = substr( $files['name'][$i], -3 ); $filnavn = date("YmdHis").".".$extension; if ( ($extension == "jpg" || $extension == "png" || $extension == "gif") && move_uploaded_file( $files['tmp_name'][$i], $targetDir . $filnavn ) ) ) { $besked .= "$billedeurl er blevet uploadet med succes!<br>"; } else { $filnavn = ""; $billede = ""; } } } } $billededato = $_REQUEST['billededato']; $billedested = checkInput($billedested, '', '', "javascript", false); $billededato = checkInput($billededato, '', '', "javascript", false); $billedetitel = checkInput($billedetitel, '', '', "javascript", false); $billedebeskrivelse = checkInput($billedebeskrivelse, '', 'yes', "javascript", false); $billedeuge = checkInput($billedeuge, '', '', "javascript", false); // Indsættes i database til retning af billede $db->query("INSERT INTO nikksite_billeder VALUES ('', '$billedested', '$billededato', '$filnavn', '$billedetitel', '$billedebeskrivelse', '$billedeuge')"); $site_body = "<font class=txt><p align=center><b>Dit billede er tilføjet!</b></p></font></font>"; redirect('index.php?action=admin&sub=galleri', 4, X_REDIRECT_JS); ?> Og dertil følgende upload-formular: <tr> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billededato" value="$datoen" size="10" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><select size="1" name="billedested"> <option value="valdisere0607">Val d'Isere 06/07</option> <option value="alpedhuez0405">Alpe d'Huez 04/05</option> </select></td> <td bgcolor="$altbg2" class="tablerow" align="center"> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> </td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedetitel" size="15" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><textarea rows="2" name="billedebeskrivelse" cols="20"></textarea></td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedeuge" value="$ugenr" size="1" /></td> </tr>
18. september 2006 - 21:09
#6
Cool, men umiddelbart tror jeg ikke at formularen er ok.. jeg skulle gerne kunne skrive forskellige beskrivelser osv. til hvert billede der uploades. Ud fra ovenstående for 7 billeder der uploades de samme data ikke sandt?
18. september 2006 - 21:13
#7
det er korrekt ;P
18. september 2006 - 21:16
#8
så hvordan klarer jeg den? :) tilføjer jeg bare [] til de andre også?
18. september 2006 - 21:26
#9
aj, det prøvede jeg lige med bare 2 uploadningsmuligheder.. 1) Den uploader kun 1 billede 2) Den tilføjer også kun 1 billede til db'en og alle felter, udenom 'billede', får bare værdien "Array" istedet.
18. september 2006 - 22:26
#10
Du kan bruge [] til de andre også, men så skal det hele ind i det for()-loop, og du skal tilgå dem med f.eks. $_POST['billedetitel'][$i] osv
18. september 2006 - 22:32
#11
ok det prøver jeg, men hvordan får jeg den til at uploade alle billederne? det vil den nemlig ikke..
18. september 2006 - 22:43
#12
eh, du får alle de point du vil have hvis du kan gøre det for mig. jeg aner ikke hvor jeg skal tage starte.. jeg troede ikke at det var så besværligt. :-/
18. september 2006 - 22:45
#13
Det vil den sikkert, men det sker i samme sekund, derfor bliver den overskrevet - Det er i hvert tilfælde mit gæt ;)
18. september 2006 - 22:49
#14
hvad kan jeg så gøre? kan du lave et script ud fra mit der har multi-upload af billeder + data til hhv. en mappe (for biledets vedkommende) og database? det fungerer upåklageligt så længe det kun drejer sig om et enkelt billede der skal uploades.
18. september 2006 - 22:52
#15
Prøv: <?php $targetDir = $_SERVER['DOCUMENT_ROOT']."/nikk/images/galleripics/"; $besked = ""; if ( !empty( $_FILES['upfile'] ) ) { $files = $_FILES['upfile']; $n = count( $files ); for ( $i = 0; $i < $n; $i++ ) { if ( is_uploaded_file( $files['tmp_name'][$i] ) ) { $billede = $files['name'][$i]; $extension = substr( $files['name'][$i], -3 ); $filnavn = date("YmdHis").".".$extension; if ( ($extension == "jpg" || $extension == "png" || $extension == "gif") && move_uploaded_file( $files['tmp_name'][$i], $targetDir . $filnavn ) ) ) { $besked .= "$billedeurl er blevet uploadet med succes!<br>"; $xbillededato = $_REQUEST['billededato'][$i]; $xbilledested = checkInput($billedested[$i], '', '', "javascript", false); $xbillededato = checkInput($billededato[$i], '', '', "javascript", false); $xbilledetitel = checkInput($billedetitel[$i], '', '', "javascript", false); $xbilledebeskrivelse = checkInput($billedebeskrivelse[$i], '', 'yes', "javascript", false); $xbilledeuge = checkInput($billedeuge[$i], '', '', "javascript", false); // Indsættes i database til retning af billede $db->query("INSERT INTO nikksite_billeder VALUES ('', '$xbilledested', '$xbillededato', '$filnavn', '$xbilledetitel', '$xbilledebeskrivelse', '$xbilledeuge')"); $site_body = "<font class=txt><p align=center><b>Dit billede er tilføjet!</b></p></font></font>"; } else { $filnavn = ""; $billede = ""; } } } } redirect('index.php?action=admin&sub=galleri', 4, X_REDIRECT_JS); ?> Og dertil følgende upload-formular: <?php for ( $i = 0; $i < 5; $i++ ) { ?> <tr> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billededato[]" value="$datoen" size="10" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><select size="1" name="billedested[]"> <option value="valdisere0607">Val d'Isere 06/07</option> <option value="alpedhuez0405">Alpe d'Huez 04/05</option> </select></td> <td bgcolor="$altbg2" class="tablerow" align="center"> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> </td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedetitel[]" size="15" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><textarea rows="2" name="billedebeskrivelse[]" cols="20"></textarea></td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedeuge[]" value="$ugenr" size="1" /></td> </tr> <?php } ?>
18. september 2006 - 22:54
#16
Hov: $filnavn = date("YmdHis").".".$extension; Skal være: list( $mspart, $secpart ) = explode( ' ', microtime() ); $filnavn = date("YmdHis").$mspart.".".$extension;
18. september 2006 - 23:04
#17
Tæt på! Med kun en fil fungerer det fint.. så jeg prøvede med to og der indsatte den data for begge filer korrekt i databasen, men den uploade kun nr. 2 billede, så måske der forekom en overskrivning der?
18. september 2006 - 23:05
#18
prøver lige med det sidste du tilføjede der.. øjeblik
18. september 2006 - 23:07
#19
Jaa!! Det virker perfekt!! Tak! :) Hvis du smider et svar, så får du de 60 point her og så opretter jeg en tråd med 140 point til.. eller vil du have mere?
18. september 2006 - 23:12
#20
Svar :) Nah, 60 er fint nok.
18. september 2006 - 23:13
#21
Alright! I hvert fald mange tak herfra!
18. september 2006 - 23:16
#22
Til andre der skulle gøre brug af det.. her er det endelige script: <?php $targetDir = $_SERVER['DOCUMENT_ROOT']."/nikk/images/galleripics/"; $besked = ""; if ( !empty( $_FILES['upfile'] ) ) { $files = $_FILES['upfile']; $n = count( $files ); for ( $i = 0; $i < $n; $i++ ) { if ( is_uploaded_file( $files['tmp_name'][$i] ) ) { $billede = $files['name'][$i]; $extension = substr( $files['name'][$i], -3 ); list( $mspart, $secpart ) = explode( ' ', microtime() ); $filnavn = date("YmdHis").$mspart.".".$extension; if ( ($extension == "jpg" || $extension == "png" || $extension == "gif") && move_uploaded_file( $files['tmp_name'][$i], $targetDir . $filnavn ) /*)*/ ) { $besked .= "$billedeurl er blevet uploadet med succes!<br>"; $xbillededato = $_REQUEST['billededato'][$i]; $xbilledested = checkInput($billedested[$i], '', '', "javascript", false); $xbillededato = checkInput($billededato[$i], '', '', "javascript", false); $xbilledetitel = checkInput($billedetitel[$i], '', '', "javascript", false); $xbilledebeskrivelse = checkInput($billedebeskrivelse[$i], '', 'yes', "javascript", false); $xbilledeuge = checkInput($billedeuge[$i], '', '', "javascript", false); // Indsættes i database til retning af billede $db->query("INSERT INTO nikksite_billeder VALUES ('', '$xbilledested', '$xbillededato', '$filnavn', '$xbilledetitel', '$xbilledebeskrivelse', '$xbilledeuge')"); $site_body = "<font class=txt><p align=center><b>Dit billede er tilføjet!</b></p></font></font>"; } else { $filnavn = ""; $billede = ""; } } } } redirect('index.php?action=admin&sub=galleri', 4, X_REDIRECT_JS); ?> Og dertil upload-formularen, som man bare kan duplere alt efter hvor mange uploads der skal være: <?php for ( $i = 0; $i < 5; $i++ ) { ?> <tr> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billededato[]" value="$datoen" size="10" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><select size="1" name="billedested[]"> <option value="valdisere0607">Val d'Isere 06/07</option> <option value="alpedhuez0405">Alpe d'Huez 04/05</option> </select></td> <td bgcolor="$altbg2" class="tablerow" align="center"> <input name="upfile[]" type="file" size="20" style="width: 200px"><br> </td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedetitel[]" size="15" /></td> <td bgcolor="$altbg2" class="tablerow" align="center"><textarea rows="2" name="billedebeskrivelse[]" cols="20"></textarea></td> <td bgcolor="$altbg2" class="tablerow" align="center"><input type="text" name="billedeuge[]" value="$ugenr" size="1" /></td> </tr> <?php } ?>
Vi tilbyder markedets bedste kurser inden for webudvikling