Avatar billede compac Seniormester
29. maj 2007 - 10:16 Der er 12 kommentarer og
1 løsning

Move_uploaded_file-problem

Jeg har en stump kode,hvor det er meningen at en fil skal uploades. Hvis den findes i forvejen skal den have tilføjet et nummer. (filiforvejen_99.jpg)
Her er koden:
<html>
<body>
<?php
$file_dir = "upload/";
if ($_POST) {
$img = $file_dir.$_FILES['uploaded']['name'];
$t=0;
  while(file_exists($img)){
    $img = $_FILES['myfiles']['newfile'];
    $img=substr($img,0,strpos($img,"."))."_$t".strstr($img,".");
  $t++;
}
move_uploaded_file($_FILES['myfiles']['tmp_newfile'], $img);
}
print "<form method='post' enctype='multipart/form-data'>";
print "<input type='file' name='myfiles' size='85'>";
print "<br><input type='submit' name='action' value='Kopiér filer'>";
print "</form>";
?>
</font>
</body>
</html>
Der sker intet når jeg kører programmet. Hvor kan fejlen ligge?
Avatar billede jakobdo Ekspert
29. maj 2007 - 11:53 #1
Test her:

<html>
<body>
<?php
if(isset($_POST['action']))
{
    $file_dir = "upload/";
    $img = $file_dir.$_FILES['uploaded']['name'];
    $ext = pathinfo($_FILES['uploaded']['name'],PATHINFO_EXTENSION)
    $basename = basename($_FILES['uploaded']['name'], $ext);
   
    $t=0;
  while(file_exists($img))
  {
        $img = $file_dir . $basename . "_" . $t . $ext;
        $t++;
    }
    move_uploaded_file($_FILES['myfiles']['tmp_name'], $img);
}
print "<form action='".$_SERVER['PHP_SELF']."' method='post' enctype='multipart/form-data'>";
print "<input type='file' name='myfiles' size='85'>";
print "<br><input type='submit' name='action' value='Kopiér filer'>";
print "</form>";
?>
</font>
</body>
</html>
Avatar billede dkfire Nybegynder
29. maj 2007 - 12:42 #2
jakobdo:
Det hedder vel ikke $_FILES['uploaded']['name'] men $_FILES['myfiles']['name']

compac:
Synes du roder rundt i dine navne for filen. For at tilgå den uploaded fil skal du bruge  name fra din form. $_FILES['myfiles']['name'] eller $_FILES['myfiles']['tmp_name']
Avatar billede jakobdo Ekspert
29. maj 2007 - 13:08 #3
Argh, den smuttede sgu lige! :o)
Avatar billede compac Seniormester
29. maj 2007 - 17:11 #4
Jeg kune tænke mig at der kommer punktum lige inden filtypen.

Jeg har gjort dette forsøg:
  $img = $file_dir . $basename . "_" . $t .  "." .$ext;
- men det giver bare punktum både inden stregen og inden filtypen.

Giv din kommentar som et svar.
Avatar billede jakobdo Ekspert
29. maj 2007 - 18:22 #5
Ja, den har jeg også lige glemt!

Det bør være:

$img = $file_dir . $basename . '_' . $t . '.' . $ext;
Avatar billede jakobdo Ekspert
29. maj 2007 - 18:23 #6
Og et svar!
Avatar billede jakobdo Ekspert
30. maj 2007 - 09:55 #7
Takker for point.
Avatar billede compac Seniormester
30. maj 2007 - 10:05 #8
Jeg var lige hurtig nok til at afslutte.
Din løsning mht. punktummerne giver ingen forskel.
Avatar billede jakobdo Ekspert
30. maj 2007 - 10:15 #9
Hvad er problemet da?
Avatar billede compac Seniormester
30. maj 2007 - 10:28 #10
Et eksempel på en fil:

test._1.jpg

Her kunne jeg tænke mig at filnavnet kommer til at se således ud:

test_1.jpg
Avatar billede jakobdo Ekspert
30. maj 2007 - 10:35 #11
Ahh for fanden!

Ret lige koden: $basename = basename($_FILES['uploaded']['name'], $ext);
til: $basename = basename($_FILES['uploaded']['name'], '.'.$ext);
Avatar billede compac Seniormester
30. maj 2007 - 10:43 #12
Så er jeg tilfreds - takker.
Avatar billede jakobdo Ekspert
30. maj 2007 - 10:57 #13
Det var så lidt!
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