WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Namnbyte på uppladdad fil?? Help! (https://www.wn.se/forum/showthread.php?t=1044183)

Tobbe! 2010-10-08 14:53

Namnbyte på uppladdad fil?? Help!
 
Hejsan!
Jag är nu klar, och har fixat och fjångat och löst det förra problemet, men ett rpoblem återstår.

Jag har en hemsida, ifile.se , där man kan ladda upp filer.
Hur gör man så att när folk laddar upp, byter filen automatiskt namn så inte en fil med samma namn skriver över den andra.

Har sökt på goggle, men inget funkar. Här är koden jag har:
PHP-kod:

<? 
session_start();
$n=$_FILES['user_file']['name'];
$type=$_FILES['user_file']['type'];
$size=$_FILES['user_file']['size'];
$path="uploads/". $n;

 
 

$uploaded = $_SESSION['firsttimeupload'];

if ($uploaded == "ok")
{
       if ($size <100000 && ereg("image", $type  ))
          {
              move_uploaded_file($_FILES['user_file']['tmp_name'],
            $path);
            
            $root= "http://ifile.se/uploads/";
            $path2=$root . $n;
            echo "<center>";
            echo "<h3>Bild-länk: </h3><a href=$path2>$path2</a><br><br>"; 
            echo "<br>";
            echo "<img src=$path2 border='5'></img>";
            echo "<center>";
            
            
$fp=fopen("links.text", "at");
            fwrite($fp, $path2."\n");
            fclose($fp);              
            session_destroy();
          }          
}      
else
{
echo "Du kan inte ladda upp samma bild på så kort tid. Gå tillbaka och välj en annan fil eller pröva igen.";
}  
          
////////////
     if ($size>100000)
       {
echo "ERROR <br> bildens storlek är för stor.";
       }

     if (!ereg("image", $type) )
      {
echo "ERROR <br> filen är inte en bild.<br>";
       }
       
    
echo"<br><br><h2><a href='library.php'>Se uppladdade bilder</a></h2>";
echo "<body bgcolor='#FF6699'>"
?>


jayzee 2010-10-08 15:04

PHP-kod:

$uploadedFilename $n '_' time();
move_uploaded_file($_FILES['user_file']['tmp_name'],  $path $uploadedFilename); 


Tobbe! 2010-10-08 15:21

Tack för ditt svar.
Tyvärr händer ingenting när jag lägger in koden. Kan du visa en full kod, som den jag lade upp i det förra inlägget, fast det du lägger in, och så provar jag att lägga in den, och se om det funkar? :)

jayzee 2010-10-08 15:24

Ersätt din "move_uploaded_file($_FILES['user_file']['tmp_name'], $path);" med dessa 2 rader.

Tobbe! 2010-10-08 15:28

Funkar fortfarande inte :O

jayzee 2010-10-08 15:32

Citat:

Ursprungligen postat av Tobbe! (Inlägg 20372630)
Funkar fortfarande inte :O

Sorry, var lite klåfingrig och är fredagstrött :)
Nu har jag fixat till koden, prova igen.

iostream 2010-10-08 15:34

Citat:

Ursprungligen postat av jayzee (Inlägg 20372623)
PHP-kod:

$uploadedFilename $n '_' time();
move_uploaded_file($_FILES['user_file']['tmp_name'],  $path $uploadedFilename); 


Tyvärr hamnar ju filändelsen någonstans i mitten när man gör så här.

Tobbe! 2010-10-08 15:38

Det funkar inte det heller.. Something is wrong.. :S

jayzee 2010-10-08 15:42

Citat:

Ursprungligen postat av iostream (Inlägg 20372632)
Tyvärr hamnar ju filändelsen någonstans i mitten när man gör så här.

Det är så sant så, tänkte inte på det...

PHP-kod:

$uploadedFilename time() . '_' $n


Tobbe! 2010-10-08 15:43

Behöver jag göra något? Rensa historik eller något?

iostream 2010-10-08 15:46

Citat:

Ursprungligen postat av Tobbe! (Inlägg 20372636)
Behöver jag göra något? Rensa historik eller något?

Vad fungerar inte?
Att säga att "det" inte fungerar hjälper inte. Hur ska vi veta vad du menar?
Blir det fortfarande samma filnamn? Får du en BSOD? Börjar hårddisken ticka?

Tobbe! 2010-10-08 16:01

Eller??????

Tobbe! 2010-10-08 16:02

Aha, ojj, ja, det blir fortfarande samma filnamn, som när jag laddar upp.

jayzee 2010-10-08 16:06

Citat:

Ursprungligen postat av Tobbe! (Inlägg 20372645)
Aha, ojj, ja, det blir fortfarande samma filnamn, som när jag laddar upp.

Det bör det inte bli, om du nu ändrat i källkoden på rätt ställe.
Kika i loggfilen på din Litespeed server och se vad som står där när du laddar upp

Tobbe! 2010-10-08 16:16

Jag har ändrat källkoden rätt osv.
Allt bör vara rätt.. Har detta:
PHP-kod:

<? 
session_start();
$n=$_FILES['user_file']['name'];
$type=$_FILES['user_file']['type'];
$size=$_FILES['user_file']['size'];
$path="uploads/". $n;

 

$uploaded = $_SESSION['firsttimeupload'];

if ($uploaded == "ok")
{
       if ($size <100000 && ereg("image", $type  ))
          {
              $uploadedFilename = time() . '_' . $n; 
move_uploaded_file($_FILES['user_file']['tmp_name'],  $path . $uploadedFilename);     
            
            $root= "http://ifile.se/uploads/";
            $path2=$root . $n;
            echo "<center>";
            echo "<h3>Bild-länk: </h3><a href=$path2>$path2</a><br><br>"; 
            echo "<br>";
            echo "<img src=$path2 border='5'></img>";
            echo "<center>";
            
            
$fp=fopen("links.text", "at");
            fwrite($fp, $path2."\n");
            fclose($fp);              
            session_destroy();
          }          
}      
else
{
echo "Du kan inte ladda upp samma bild på så kort tid. Gå tillbaka och välj en annan fil eller pröva igen.";
}  
          
////////////
     if ($size>100000)
       {
echo "ERROR <br> bildens storlek är för stor.";
       }

     if (!ereg("image", $type) )
      {
echo "ERROR <br> filen är inte en bild.<br>";
       }
       
    
echo"<br><br><h2><a href='library.php'>Se uppladdade bilder</a></h2>";
echo "<body bgcolor='#FF6699'>"
?>


iostream 2010-10-08 16:23

PHP-kod:

$path2=$root $uploadedFilename


jayzee 2010-10-08 16:29

Testat och fungerar (tog bort session data i testsyfte ;))

PHP-kod:

<?
$n=$_FILES['user_file']['name'];
$type=$_FILES['user_file']['type'];
$size=$_FILES['user_file']['size'];
$path="uploads/";


       if ($size <100000 && ereg("image", $type  ))
          {
              $uploadedFilename = time() . '_' . $n;
move_uploaded_file($_FILES['user_file']['tmp_name'],  $path . $uploadedFilename);

            $root= "http://ifile.se/uploads/";
            $path2=$root . $uploadedFilename;
            echo "<center>";
            echo "<h3>Bild-l�nk: </h3><a href=\"$path2\">$path2</a><br><br>";
            echo "<br>";
            echo "<img src=$path2 border='5'></img>";
            echo "<center>";


$fp=fopen("links.text", "at");
            fwrite($fp, $path2."\n");
            fclose($fp);
          }

////////////
     if ($size>100000)
       {
echo "ERROR <br> bildens storlek ï¿½r f�r stor.";
       }

     if (!ereg("image", $type) )
      {
echo "ERROR <br> filen ï¿½r inte en bild.<br>";
       }


echo"<br><br><h2><a href='library.php'>Se uppladdade bilder</a></h2>";
echo "<body bgcolor='#FF6699'>"
?>


Tobbe! 2010-10-08 18:29

Tack så jättemycket, nu funkar allt som det ska.

tartareandesire 2010-10-09 11:10

Ett tips är att du skriver ut dina variabler när du felsöker så hittar du snabbt sådana här fel själv...


Alla tider är GMT +2. Klockan är nu 09:45.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson