sådan uploader man flere filer samtidig!
Hej alle sammen.Jeg har gået og rodet med et multi upload script, men jeg har ikke rigtig kunne finde ud af hvordan man gør.
Der er mange script på¨nette og mange af dem vælger html formen med en løsning som denne
her <input type="file" name="fil1">
<input type="file" name="fil2">
<input type="file" name="fil3">
hvilket er ok, men det bliver hurtig træls, hvis man har mange filer, så jeg tænke at, hvorfor kan man
ikke overføre og vælge flere filer samtidig og uploade dem samtidig ?.
jeg sægte og søgte på nette, fandt intet, men så snublede jeg over et par sider der forklarede
multi upload meget mere forenklet en de tutorials jeg har støt på, mange tutroials jeg læste på
nette unskyld jeg siger er idiotisk opbygget, disse to script som kommer fra forskellig sider, gør nøjagtig
som jeg håbede, nemlig at lade brugeren vælge flere filer i et felt samtidig og uploade dem til serveren.
jeg har selv bikset koderne fra forskellig kilder på nette sammen.
det virker på firefox og internetexplore, men syntes jeg har oplevede problemer med array error på chrome!.
skal selv nærstudere scriptene og forbedre dem!.
her er multi upload af html formen.
<html>
<head>
</head>
<body>
<form action="http://localhost/upload2.php" method="post" enctype="multipart/form-data"><!-- enctype bruges til at fortælle
html formen at, her bruges data ,altså filer til overførelse til php scriptet!-->
<input type="file" name="fil[]" multiple/> <!-- her bruges tegene [] i gåseøjene for at
fortælle html formen at variablene skal være et array, og multiple, betyder at input feltet fil
kan indholde flere filer, altså at man kan vælge flere FILER I KUN ET HTML INPUT FELT!-->
<br> <br><input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
PS. der er sikkert noget forvirring omkring php / multi upload af filer.
nogen vil sikkrt spørge hvad uploader hvad ?, jeg mener hvilket kode
udføre faktisk uploaden ?, det køre html formen med input type="fil" og
php skal bare modtage filerne og behandle dataene rigtig med
move_uploaded_file($source, $destpath . $filename)
jeg har set mange script på nette omkring php mulit upload af filer osv.
men her er der også forviring, omkring, om man kan overføre FLERE
FILER SAMTIDIG I ET ENESTE FELT I HMTL FORMEN, OG UPLOADE DEM VIA ET
PHP SCRIPT!, JA DET KAN MAN, VED HJÆLP AF MULTIPLE OG [].
DESUDEN KAM MAN OGSÅ ANGIVE HVOR MANGE FILER DER MÅ UPLOADES
I HMTL FORMEN SOM HER <input type="file" name="fil[]" multiple min="1" max="10"/>
//form action="http://localhost/upload2.php" method="post" enctype="multipart/form-data">
her efr php scriptet som tager sig af mulit upload af filer.
<?php
$destpath = "dinsti/" ; // angiver sti -lokation på server, hvor filer skal uploades til.
while(list($key,$value) = each($_FILES["fil"]["name"])) // while gennemkøre alle filer fra array variablen FIL og gemmer dem i
// $filename
{
if ($_FILES["fil"]["error"][$key] > 0) // hvis ingen filer er valgt, så udskriv fejl meddelse.
{
echo "fejl: " . $_FILES["fil"]["error"][$key] . "<br/>" ;
}
// else flyt filer til den angivende sti $destpath .
{
$source = $_FILES["fil"]["tmp_name"][$key] ;
$filename = $_FILES["fil"]["name"][$key] ;
move_uploaded_file($source, $destpath . $filename) ;
echo "Uploaded: " . $destpath . $filename . "<br/>" ; // udskriv alle uploaded filer med variablerne $destpath / $filename
}
}
?>
HER ER HELE SCRIPTET UDEN KOMMENTAR.
HTML FORMEN
------------------------------------------------------
<html>
<head>
</head>
<body>
<form action="http://localhost/upload2.php" method="post" enctype="multipart/form-data">
<input type="file" name="fil[]" multiple/>
<br> <br><input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
--------------------------------------------------------
PHP UPLOAD SCRIPTET, UDEN IF SÆTNINGER!.
---------------------------------------------------
<?php
$destpath = "media/" ;
while(list($key,$value) = each($_FILES["fil"]["name"]))
{
$source = $_FILES["fil"]["tmp_name"][$key] ;
$filename = $_FILES["fil"]["name"][$key] ;
move_uploaded_file($source, $destpath . $filename) ;
echo "Uploaded: " . $destpath . $filename . "<br/>" ;
}
?>