Avatar billede fixbabe Nybegynder
16. juli 2005 - 13:47 Der er 11 kommentarer og
1 løsning

upload mere end en fil afgangen

Jeg har dette script, og det kan kun uploade en fil afgangen. Jeg vil gerne havde den til at uploade 6 eller 10 filer istedet for en kun.



--Script--
<?

$uploaddir="pics/";
$youremail="min@email.dk";
$thankspage="index.php?site=ok";
$uptymessage="Hej $realname, du har uploadet filen $file_name";
$ownermessage="$realname [ $email ] has uploaded a file named $file_name\n\nCheck the upload directory.";
$emailmessages = "1";



$x = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email);

if($x==0)

{
echo "<div align=center><font size=1 face=Tahoma>Fejl. <a href=java script:history.back(-1)>Tilbage</a>.</div>";
}
else {


if ($file == "none") {

echo "<div align=center><font size=1 face=Tahoma>Fejl.<a href=java script:history.back(-1)>Tilbage</a>.</div>";
}
else {
//directory to upload to
copy($file, $uploaddir.$file_name);
unlink($file);

//return thank you page
Header("Location: $thankspage");
}
}
if ($emailmessages == "1") {
//mail you to let you know a new uploaded file
mail("$youremail", "Uploaded file", "$ownermessage");
//mail user to thank them
mail("$email", "Uploaded file", "$uptymessage");
exit;
}

?>
Avatar billede jaw Nybegynder
16. juli 2005 - 14:21 #1
Hvor kommer $file fra? Fra et fil-felt? I så fald, så prøv:

for($i = 0; $i < count($_FILES['file']['name']); $i++) {
  if($_FILES['file']['name'][$i] != "") {
    move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploaddir.$_FILES['file']['name'][$i]);
  }
}

Så skal alle dine upload-felter så blot hedde name='file[]', så burde det vist virke :)
Avatar billede fixbabe Nybegynder
16. juli 2005 - 14:31 #2
Hvor skal det smides ind ?
Avatar billede jaw Nybegynder
16. juli 2005 - 14:33 #3
I stedet for det her vil jeg mene:

//directory to upload to
copy($file, $uploaddir.$file_name);
unlink($file);
Avatar billede fixbabe Nybegynder
16. juli 2005 - 14:38 #4
Den skriver bare "fejl"
Avatar billede jaw Nybegynder
16. juli 2005 - 14:39 #5
Hvis mig den kode, du bruger i dine forms, for jeg er ikke helt klar på, hvor du får $file fra, og det har du ikke svaret mig på...
Avatar billede fixbabe Nybegynder
16. juli 2005 - 14:40 #6
ups havde glemt file[] :) smid et svar så du kan få dine vel fortjente ponits :)
Avatar billede fixbabe Nybegynder
16. juli 2005 - 14:42 #7
Kan være du kan hjælpe med at den ved "$uptymessage="Hej $realname, du har uploadet filen $file_name";" så den skriver hva de uploadede filer hedder.
Avatar billede jaw Nybegynder
16. juli 2005 - 14:48 #8
Jeg kan prøve.

1. Fjern $uptymessage fra toppen af scriptet.

2. Ændre upload-delen til:

$upl_file = array();
for($i = 0; $i < count($_FILES['file']['name']); $i++) {
  if($_FILES['file']['name'][$i] != "") {
    move_uploaded_file($_FILES['file']['tmp_name'][$i], $uploaddir.$_FILES['file']['name'][$i]);
    $upl_file[] = $_FILES['file']['name'][$i];
  }
}

3. Der hvor du vil bruge variablen (skal dog være efter upload-delen), indsætter du:

$uptymessage = "Hej ".$realname.", du har uploadet f&oslash;lgende filer:<br />";
foreach($upl_file as $v) {
  $uptymessage .= "- ".$v."<br />";
}

4. Udskrives selvf. med echo $uptymessage;
Avatar billede fixbabe Nybegynder
16. juli 2005 - 15:07 #9
thx :D du har redet min dag
Avatar billede jaw Nybegynder
16. juli 2005 - 15:20 #10
Hehe, det var da godt :) Selv tak...
Avatar billede holm76 Nybegynder
17. juli 2005 - 20:17 #11
kan man lave scriptet således at der kan laves flere mapper til filerne??
Avatar billede jaw Nybegynder
17. juli 2005 - 22:37 #12
Kan du sagtens. Kig evt. på www.php.net/mkdir og se om det er hvad du ønsker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester