Avatar billede big_ossi Nybegynder
23. december 2004 - 20:45 Der er 6 kommentarer og
4 løsninger

Hjælp til at give uploadet filer unik fil navn

Jeg bruger denne kode til at uploade filer med. men er nu løbet ind i det problem den overskriver de tidliger uploadet filer ned de nye hvis de har samme fil navn.

Det går ikke da filnavnet bliver lagt i min mysql og hentet den vej.

Er der en som kan gøre så den giver hver uploadet fil et unikt filnavn ?

--- kode ---
<?
if(isset($_POST['upload'])) {
    $dist = "mobil/";
    foreach ($_POST as $key => $val) {
        $$key = $val;
    }
for ( $i = 0; $i < 20; $i++ )
{
  if (isset($_FILES['upfil']['name'][$i]) && $_FILES['upfil']['name'][$i] != "") {
            $filnavn = $_FILES['upfil']['name'][$i];
            $tempnavn = $_FILES['upfil']['tmp_name'][$i];
            $sti = $dist . $filnavn;
            move_uploaded_file($tempnavn, $sti);
            mysql_query("INSERT INTO mobil_sektion (navn, kat, godkendt, downloads, sti )VALUES ('$s_navn', '$kat', '1', '0', '$sti')") or die(mysql_error());
            echo "<img border=\"0\" src=\"$sti\" align=\"center\" width=\"96\" height=\"96\"><br>";
            echo "Farvebilledet er nu tilføjet..<br>Du får 8 points når admin har godkendt det<br>";
    }
}
            echo "<a href=\"?side=sider/Mobil/tilfoj.php\">Tilføj flere..</a>";
}else{
?>

<html>
<head>
<title>Admin system</title>
</head>
<body>
<style type="text/css">
INPUT, SELECT, TEXTAREA {
background-color: #666666;
color: #ffffff;
font-family: Verdana;
font-size: 10px;
border: solid 1px #999999;
padding: 1;
}
</style><form action="" method="post" enctype="multipart/form-data">
  <table width="100%" border="0">
    <tr>
      <td width="22%"><font size="1" face="Arial, Helvetica, sans-serif">Upload
        af Farvebilleder
        <?=$row[navn]?>
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
    <tr>
      <td rowspan="4" align="left" valign="top"><font size="1" face="Arial, Helvetica, sans-serif">Helst
        mellem 96x96 &amp; 200x200</font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td><font size="1" face="Arial, Helvetica, sans-serif">&nbsp; </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kategori for alle
        valgte pics</font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="file" name="upfil[]" size="20">
        </font></td>
    </tr>
    <tr>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <select name="kat" size="1" id="select2">
          <option>V&aelig;lg</option>
          <option value="Blandet">Blandet</option>
          <option value="Dyr">Dyr</option>
          <option value="Frakkebabes">Fr&aelig;kke babes</option>
          <option value="Grafik">Grafik</option>
          <option value="Hottefyre">Hotte fyre</option>
          <option value="Kendte">Kendte</option>
          <option value="Karlighed">K&aelig;rlighed</option>
          <option value="Natur">Natur</option>
          <option value="Personer">Personer</option>
          <option value="Sjove">Sjove</option>
          <option value="Sport">Sport</option>
          <option value="SprodeVogne">Spr&oslash;de Vogne</option>
          <option value="Stjernetegn">Stjernetegn</option>
          <option value="Symboler">Symboler</option>
          <option value="Tegnede">Tegnede</option>
          <option value="Transport">Transport</option>
          <option value="ol">&Oslash;l & Fest !</option>
        </select>
        </font></td>
      <td><font size="1" face="Arial, Helvetica, sans-serif">
        <input type="submit" value="Upload" name="upload">
        </font></td>
      <td>&nbsp;</td>
    </tr>
  </table>
</form>
</body>
</html>
<?
}
?>
Avatar billede Slettet bruger
23. december 2004 - 20:53 #1
$filnavn = time() . $_FILES['upfil']['name'][$i];
Avatar billede delphinarious Nybegynder
23. december 2004 - 20:55 #2
Brug evt. tidspunkt som filnavn. Medmindre der uploades flere billeder i samme sekund, vil du dermed ikke kunne overskrive gamle filer, ved at uploade nye.

date("YmdHis");
Avatar billede big_ossi Nybegynder
23. december 2004 - 20:58 #3
Hey.
Det virker næsten.. den uploader 1 til tider 2 med sammen filnavn stadig.
Avatar billede delphinarious Nybegynder
23. december 2004 - 21:05 #4
Ahh, jamen du har jo også flere fil-felter i din form... Så kalder du dem bare date("YmdHis")."_1" og den næste "_2" og den næste "_3" og så videre... :-)
Avatar billede big_ossi Nybegynder
23. december 2004 - 21:10 #5
hmm det kan jeg da ikke når jeg køre en loop kan jeg ? de hedder jo alle det samme upfil[]

Er ikke ret meget inde i den del af php endnu..
Avatar billede delphinarious Nybegynder
23. december 2004 - 21:12 #6
Altså du kan jo bruge $i. Den bliver jo alligevel tillagt 1 hver gang løkken køres. SÅ bliver det bare "_".$i. :-)
Avatar billede delphinarious Nybegynder
23. december 2004 - 21:13 #7
I øvrigt bør du ikke have flere input-felter med samme navn, i den samme formular...
Avatar billede big_ossi Nybegynder
23. december 2004 - 21:23 #8
Takker det virker...

Det med input felterne er efter hvad jeg lige forstår at det nødvendigt for at jeg kan køre den loop..
Avatar billede delphinarious Nybegynder
23. december 2004 - 21:29 #9
Hmm... Ej, det kan nu godt lade sig gøre at køre løkken selvom input-felterne har forskellige navne. Men den skulle omstruktureres lidt. Du kan f.eks. ikke få valideret din kode, hvis du har flere input-felter med samme navn. Men hvis bare det virker, så er du vel glad? Og det var vel pointen med dit spørgsmål. ;-)

God jul.
Avatar billede big_ossi Nybegynder
23. december 2004 - 21:41 #10
Jeps... hvis alt mig begynder lort skulle kunne valideres såå blev jeg aldrig færdig *G* Men du har ret når det spiller er jeg glad..

Selv God jul og godt Nytår ;o)
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