Avatar billede silke4ever Nybegynder
11. juli 2004 - 13:38 Der er 12 kommentarer og
1 løsning

Foto upload af 2 billeder

Hej

Jeg skal bruge et script, hvor jeg kan uploade to billeder i gif format.

Jeg skal have mulighed for at uploade 2 billeder i en bestemt mappe, og hvor filnavne bliver omdannet til 1.gif og 2.gif hver gang jeg uploader via scriptet. Altså således at billederne bliver overskrvet hver gang jeg uploader via scriptet.

Hvor finder jeg sådan et script eller hvordan laver jeg det? Jeg er helt blank..
Avatar billede jaw Nybegynder
11. juli 2004 - 13:50 #1
Du skal lave 2 forms på en side: <input type="file" name="upfile[]"> De skal begge hedde det samme, for de vil nu kunne tilgås på en .php side som $_POST['upfile'][1] og [2].

Et upload script, ville så kunne se sådan ud:

if (isset($_FILES['upfile'])) {
  //stien, hvortil filerne skal placeres   
  $dist = "./bruger_imgs/";

  //Filer som kan uploades
  $filetyper = array("image/gif", "image/jpeg", "image/pjpeg", "image/png");

  for($i = 0; $i <= 2; $i++) {
    if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
      //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
      if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
        //Flyt filer fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
        move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $i . ".gif");
      }
    }
  }
}

Det er ikke testet, og jeg er ikke sikker på at det vil overskrive dine filer, men ellers må vi lige indsætte en løkke der sletter før den uploader...
Avatar billede silke4ever Nybegynder
11. juli 2004 - 14:43 #2
Min kode:

<?
if (isset($_FILES['upfile'])) {
  //stien, hvortil filerne skal placeres   
  $dist = "./profiler/";

  //Filer som kan uploades
  $filetyper = array("image/gif", "image/jpeg", "image/jpeg", "image/png");

  for($i = 0; $i <= 2; $i++) {
    if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
      //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
      if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
        //Flyt filer fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
        move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $i . ".gif");
      }
    }
  }
}
?>
<style type="text/css">
<!--
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>

<span class="style1">Upload er billeder <br>
</span>
<form action="" method="post" name="form1" class="style1">
  <br>
  Etape:
  <input type="file" name="upfile[]">
  <br>
  Etape_stor: 
  <input type="file" name="upfile[]">
<br>
  <br>
  <input type="submit" name="Submit" value="Indl&aelig;s">
</form>


Dette er min kode, men det gør intet. Når jeg prøver at uploade billeder sker der intet?
Avatar billede henrik6666 Nybegynder
11. juli 2004 - 15:33 #3
Her er mit afprøvet bud som måske ikke lige ser så pokkers pænt ud og det består af 2 filer jeg har strikket sammen :

opload1.php :

<form enctype="multipart/form-data" action="opload2.php" method="post">
<input type="hidden">
Upload billede 1:
<input name="pic1" type="file" size="20">
<br><br>
Upload billede 2:
<input name="pic2" type="file" size="20">
<br><br>
<input type="submit" value="Opload billederne">

opload2.php :

<?php
$uploaddir = '/home/web/testfolder/test/';
$uploadfile = $uploaddir . $HTTP_POST_FILES['pic1']['name'];

if (move_uploaded_file($HTTP_POST_FILES['pic1']['tmp_name'], $uploadfile)) {
echo "Opload af billede 1 færdig";
echo "<br>";
} else {
echo "Tror sgu der er sket en fejl med billede 1 men prøv igen !";
echo "<br>";
}
?>

<?php
$not1 = $HTTP_POST_FILES['pic1']['name'];
rename("/home/web/testfolder/test/$not1", "/home/web/testfolder/test/1.gif");
?>

<?php
$uploaddir = '/home/web/testfolder/test/';
$uploadfile = $uploaddir . $HTTP_POST_FILES['pic2']['name'];

if (move_uploaded_file($HTTP_POST_FILES['pic2']['tmp_name'], $uploadfile)) {
echo "Opload af billede 2 færdig";
echo "<br>";
} else {
echo "Tror sgu der er sket en fejl med billede 2 men prøv igen !";
echo "<br>";
}
?>

<?php
$not2 = $HTTP_POST_FILES['pic2']['name'];
rename("/home/web/testfolder/test/$not2", "/home/web/testfolder/test/2.gif");
?>
Avatar billede jaw Nybegynder
11. juli 2004 - 15:37 #4
Tror det eneste der mangler i min er:

enctype="multipart/form-data"

i <form action="">

og så ville jeg nok give action en action, altså:
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1" class="style1" enctype="multipart/form-data">
Avatar billede jaw Nybegynder
11. juli 2004 - 15:40 #5
og ændre:
if (isset($_FILES['upfile'])) {

til:
if (isset($_POST['Submit'])) {
Avatar billede jaw Nybegynder
11. juli 2004 - 15:46 #6
For at være helt sikker, så testede jeg det lige, og nu kører det :)

<?
if (isset($_POST['Submit'])) {
  //stien, hvortil filerne skal placeres   
  $dist = "./profiler/";
  //Filer som kan uploades
  $filetyper = array("image/gif", "image/jpeg", "image/jpeg", "image/png");

  for($i = 0; $i <= 2; $i++) {
    if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
      //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
      if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
        //Flyt filer fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
        $navn = $i + 1;
        move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $navn . ".gif");
      }
    }
  }
}
?>

<style type="text/css">
<!--
.style1 {font-family: Verdana, Arial, Helvetica, sans-serif}
-->
</style>

<span class="style1">Upload er billeder <br>
</span>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="post" name="form1" class="style1" enctype='multipart/form-data'>
  <br>
  Etape:
  <input type="file" name="upfile[]">
  <br>
  Etape_stor: 
  <input type="file" name="upfile[]">
<br>
  <br>
  <input type="submit" name="Submit" value="Indl&aelig;s">
</form>
Avatar billede silke4ever Nybegynder
11. juli 2004 - 16:49 #7
Jeg mangler lige en ting, "Etape:" billedet må ikke være bredre end 450 pixels.

Etape stor er lige meget...
Avatar billede jaw Nybegynder
11. juli 2004 - 17:06 #8
Det kan du vist løse sådan her:

<?
if (isset($_POST['Submit'])) {
  //stien, hvortil filerne skal placeres   
  $dist = "./profiler/";
  //Filer som kan uploades
  $filetyper = array("image/gif", "image/jpeg", "image/jpeg", "image/png");
    $size = getimagesize($_FILES['upfile']['tmp_name'][0]);
    if($size[0] > 450) {
        echo"Billede 1 er for stort, prøv igen...<br>";
        $ok = "nej";
    }
  if($ok != "nej") {
      for($i = 0; $i <= 2; $i++) {
      if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
        //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
          //Flyt filer fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
          $navn = $i + 1;
          move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $navn . ".gif");
        }
      }
    }
  }
}
?>
Avatar billede silke4ever Nybegynder
11. juli 2004 - 18:27 #9
Sidste men en lille deltaje er, når billeder er smidt på, så vil jeg gerne have den til at skrive "Dine profiler er nu uploadet"

Derefter vil du få dine fuldt fortjente point JAW!!!!!
Avatar billede jaw Nybegynder
11. juli 2004 - 18:55 #10
Det må så kunne klares sådan :

<?
if (isset($_POST['Submit'])) {
  //stien, hvortil filerne skal placeres   
  $dist = "./profiler/";
  //Filer som kan uploades
  $filetyper = array("image/gif", "image/jpeg", "image/jpeg", "image/png");
    $size = getimagesize($_FILES['upfile']['tmp_name'][0]);
    if($size[0] > 450) {
        echo"Billede 1 er for stort, prøv igen...<br>";
        $ok = "nej";
    }
  if($ok != "nej") {
      for($i = 0; $i <= 2; $i++) {
      if (isset($_FILES['upfile']['name'][$i]) && $_FILES['upfile']['name'][$i] !="") {
        //se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'][$i])) {
          //Flyt filer fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
          $navn = $i + 1;
          move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist . $navn . ".gif");
          echo"Din profil er nu uploadet...<br>";
        }
      }
    }
  }
}
?>

:)
Avatar billede silke4ever Nybegynder
11. juli 2004 - 19:16 #11
Tak Jaw.

Jeg håber, at du kan hjælpe mig med mysql tabellen i det andet spørgsmål også.
Avatar billede jaw Nybegynder
11. juli 2004 - 19:18 #12
Jeg er faktisk i gang :)
Avatar billede henrik6666 Nybegynder
11. juli 2004 - 21:12 #13
tak
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