Avatar billede compac Seniormester
31. maj 2007 - 17:58 Der er 9 kommentarer og
1 løsning

Filnavn på uploaded data

Jeg stillede forleden et spørgsmål om  move_uploaded_file - og fik et udmærket svar.
Når man arbejder videre kommer der nye spørgsmål og her er problemet:

<html>
<body>
<?php
print "<form action='".$_SERVER['PHP_SELF']."' method='post' enctype='multipart/form-data'>";
    $great = $_POST[data];
    echo "{$great}";
    $file_dir = "upload/";
    $img = $file_dir.$_FILES['myfiles']['name'];
    $ext = pathinfo($_FILES['myfiles']['name'],PATHINFO_EXTENSION);
    $basename = basename($_FILES['myfiles']['name'], '.'.$ext);
    $t=0;
  while(file_exists($img))
  {
      $img = $file_dir . $basename . '_' . $t . '.' . $ext;
        $t++;
    }
    move_uploaded_file($_FILES['myfiles']['tmp_name'], $img);
#print "<input type='file' name='myfiles' size='85'>";
print "<br><input type='submit' name='action' value='Kopiér filer'>";
print "</form>";
?>
</body>
</html>


- hvordan får jeg angivet filnavnet, hvor mine data skal ligge i?
(det skal være det samme navn hver gang - bortset fra det navn der bliver dannet med move_uploaded_file).
Avatar billede jakobdo Ekspert
31. maj 2007 - 21:27 #1
Hvad skal være det samme hver gang?
Navnet som filen gemmes som?
Navnet som filen gemmes som, kommer fra $img i denne kode:

move_uploaded_file($_FILES['myfiles']['tmp_name'], $img);
Avatar billede compac Seniormester
31. maj 2007 - 21:44 #2
For hvert gennemløb skal filnavnet være det samme f. eks. test.php - og den overskrives ved et gennemløb.
Tanken var så at der gemmes en kopi af den i /upload -biblioteket - hvor den bliver nummereret med: test_0.php ,test_1.php osv.
Indholdet i filen skal være de data, der ligger i variablen $great.
Avatar billede jakobdo Ekspert
31. maj 2007 - 21:54 #3
Det blev jeg ikke klogere af den forklaring der! :o)
Avatar billede compac Seniormester
31. maj 2007 - 22:15 #4
Der er nok blot tale om, at den fil man vælger i sætningen:
#print "<input type='file' name='myfiles' size='85'>";
skal sættes til et fast navn (test.php) -uden mulighed for at vælge andre.

Indholdet af variablen $great skal så lægges i denne fil.

(måske skal input-sætningen ændres for at opfylde dette kriterie)
Avatar billede jakobdo Ekspert
01. juni 2007 - 09:19 #5
Vil du have filen gemt 2 steder eller 1 sted?
Avatar billede compac Seniormester
17. juni 2007 - 17:40 #6
Nej filen skal ligge i "hovedbiblioteket" indtil der kommer en ny fil.
Når næste gennemløb kommer flyttes filen til biblioteket: /upload og omdøbes til "test_1.php" ,"test_2.php" osv. Den næste fil kommer så til at ligge i "hovedbiblioteket" som test.php.
Avatar billede jakobdo Ekspert
17. juni 2007 - 18:29 #7
Tror faktisk denne gør det: (er dog ikke testet for fejl) :o)

<?php
if(isset($_POST['action']))
{
    $myFileName = 'test.php';
    $myDir      = 'upload/';
    $myExt      = pathinfo( $myFileName, PATHINFO_EXTENSION );
    $myBase    = basename( $myFileName, '.' . $myExt );
    $myCount    = 0;
    $myFile = $myDir . $myBase . '_' . $myCount . '.' . $myExt;
   
    while( file_exists( $myFile ) )
    {
        $myFile = $myDir . $myBase . '_' . $myCount . '.' . $myExt;
        $myCount++;
    }
    //Kopier gammel fil til uploadDir
    copy( $myFileName, $myFile );
   
    move_uploaded_file($_FILES['myfiles']['tmp_name'], $myFileName);
}
echo '<form action="kopier.php" method="post" enctype="multipart/form-data">';
echo 'Filen: <input type="file" name="myfile" /><br />';
echo '<input type="submit" name="action" value="Kopiér filer" />';
echo '</form>';
?>
Avatar billede compac Seniormester
22. juni 2007 - 15:16 #8
Takker for hjælpen - læg et svar
Avatar billede jakobdo Ekspert
22. juni 2007 - 15:49 #9
Svar
Avatar billede jakobdo Ekspert
22. juli 2007 - 13:20 #10
Takker for point.
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