Avatar billede jammerlab Nybegynder
08. oktober 2003 - 17:36 Der er 9 kommentarer og
1 løsning

Hvordan bruger jeg RENAME funktionen?

Jeg har dette upload script:

if(!isset($_FILES['file_field']['name']) || $_FILES['file_field']['name'] == "none") {
echo "<span class=normaltext>Ingen fil som kan uploades!</span><br>";
echo "<span class=normaltext>Prøv igen...</span>";
die;
$wrong = 1;
}

$ext_array = explode( "." , $_FILES['file_field']['name'] );
$ex = $ext_array[count($ext_array) - 1];
$ex = strtolower($ex);

if(!in_array($ex,$allowed)) {
echo "<span class=normaltext>Den fil type du prøver at uploade er ikke tilladt</span>";
die;
$wrong = 1;
}

$_FILES['file_field']['size'] = $_FILES['file_field']['size']/1000;

if($size > $max) {
echo "<span class=normaltext>Den fil du prøver at uploade er større end den tilladte: $max KB.</span>";
$wrong = 1;
}

$query = mysql_query("select * from ladder_profil WHERE bruger = '$_SESSION[bruger]'") or die(mysql_error());
$row = mysql_fetch_array($query);

if(move_uploaded_file($_FILES['file_field']['tmp_name'], $dir."/".$_FILES['file_field']['name'])) {
$billede = 1;
}
else {
echo "<span class=normaltext>Fejl... kunne ikke uploade</span>";
$wrong = 1;
}

Nu er det jeg gerne skulle havde ændret fil navnet enten inden filen bliver uploadet eller når det ER uploadet. Er ligeglad det skal bare fungere.

$_FILES['file_field']['name'] Dette er fil navnet på den fil der er valgt! Det er denne som skal ændres til denne $row[uniqid] ...

Rename funktionen hedder som følgende:

Example 1. Example with rename()

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

Men kan sq ikke helt få det til at fungere. Nogen der har en løsning derude?
Avatar billede detox Nybegynder
08. oktober 2003 - 17:41 #1
Du kan indsætte det nye navn i move_uploaded_file($_FILES['file_field']['tmp_name'], $nyt_navn)
Avatar billede jammerlab Nybegynder
08. oktober 2003 - 18:01 #2
Hm... jeg lavede denne

if(move_uploaded_file($_FILES['file_field']['tmp_name'], $dir."/".$_FILES['file_field']['name'])) {

om til:
if(move_uploaded_file($_FILES['file_field']['tmp_name'], $dir."/".$row[uniqid])) {

og for følgene fejl:

Warning: move_uploaded_file(/home/web/gb5064/ladder/gfx/users//): failed to open stream: Is a directory in /home/web/gb5064/ladder/profil_set.php on line 47

Warning: move_uploaded_file(): Unable to move '/var/tmp/phpbDsz4G' to '/home/web/gb5064/ladder/gfx/users//' in /home/web/gb5064/ladder/profil_set.php on line 47
Fejl... kunne ikke uploade

Hvilket er i den linje den failer...
Avatar billede jammerlab Nybegynder
08. oktober 2003 - 18:06 #3
hov det var jo også den forkerte.
Avatar billede jammerlab Nybegynder
08. oktober 2003 - 18:08 #4
lol nej det var sq det rigtige sted! :D
Avatar billede detox Nybegynder
08. oktober 2003 - 18:09 #5
Skal der mon qoutes omkring her:

if(move_uploaded_file($_FILES['file_field']['tmp_name'], $dir."/".$row['uniqid'])) {
Avatar billede jammerlab Nybegynder
08. oktober 2003 - 18:35 #6
hjalp ik :) Samme fejl.
Avatar billede detox Nybegynder
08. oktober 2003 - 18:38 #7
Så virker det som om $row['uniqid'] er tom. Prøv at lave en:
echo $row['uniqid'];
Avatar billede detox Nybegynder
08. oktober 2003 - 18:54 #8
Ellers kunne du måske prøve sådan her:

$file_name = $_FILES['file_field']['tmp_name'];
$new_name = $dir."/".$row['uniqid'];
if(move_uploaded_file($file_name, $new_name)) {
Avatar billede jammerlab Nybegynder
08. oktober 2003 - 19:37 #9
Smukt du havde ret! Det var en fejl der hvor jeg hentede noget fra mysql'en! Men alt fungere nu :) Smid et svar hehe
Avatar billede detox Nybegynder
08. oktober 2003 - 19:41 #10
Jep c",)
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