Avatar billede webcreator Nybegynder
08. november 2003 - 13:43 Der er 48 kommentarer og
1 løsning

Flyt fil fra en mappe til en anden

Hej.

Jeg har nogle filer liggende på mit hotel, som jeg skal have mulighed for at flytte med.

Hvordan går jeg det?
move_uploaded_file duer ikke her, vel ?
Avatar billede detox Nybegynder
08. november 2003 - 13:47 #1
Brug rename()
Avatar billede TRoXa Novice
08. november 2003 - 13:47 #2
det kommer jo an på om det er under upload du snakker om :)
Avatar billede sukos Juniormester
08. november 2003 - 13:54 #3
Avatar billede webcreator Nybegynder
08. november 2003 - 14:02 #4
copy != move  ...
Avatar billede detox Nybegynder
08. november 2003 - 14:07 #5
Kan du ikke bruge rename()?
Avatar billede sukos Juniormester
08. november 2003 - 14:17 #6
detox-> Jow :O)

rename flytter, copy, ja kopiere :O)
Avatar billede detox Nybegynder
08. november 2003 - 14:32 #7
Ja, så må det jo være et svar c",)
Avatar billede webcreator Nybegynder
08. november 2003 - 15:21 #8
Hm, kan ikke få det til at virke.

$dir = mappe1
$file = fil.123
$kate = mappe2

rename("../uploads/$dir/$file", "../uploads/$kate/$file");

Scriptet, som ovenstående kode ligger i, ligger i en undermappe - "admin".
Fra denne mappe går jeg ét niveau tilbage. Her skal jeg så ind i mappen "uploads" hvor alle de andre mapper ligger. Bla. mappe1
Avatar billede webcreator Nybegynder
08. november 2003 - 15:22 #9
Hm, kan ikke få det til at virke.

$dir = mappe1
$file = fil.123
$kate = mappe2

rename("../uploads/$dir/$file", "../uploads/$kate/$file");

Scriptet, som ovenstående kode ligger i, ligger i en undermappe - "admin".
Fra denne mappe går jeg ét niveau tilbage. Her skal jeg så ind i mappen "uploads" hvor alle de andre mapper ligger. Bla. mappe1 og mappe2.

Jeg ønsker nu, at flytte fil.123 fra mappe1 til mappe2. Men det virker som sagt ikke.
Avatar billede detox Nybegynder
08. november 2003 - 15:27 #10
rename("../uploads/".$dir."/".$file, "../uploads/".$kate."/".$file);
Avatar billede sukos Juniormester
08. november 2003 - 15:27 #11
$basedir = $_SERVER["DOCUMENT_ROOT"] ."/uploads/";
$dir = "mappe1/";
$file = "fil.123";
$nytdir = "mappe2/";

rename($basedir . $dir . $file, $basedir . $nytdir . $file);
Avatar billede sukos Juniormester
08. november 2003 - 15:28 #12
umiddelbart vil jeg tro at du skal bruge den fulde sti.
Anyway, så vil du aldrig "gå galt i byen", (serveropsætning), hvis du bruger den fulde sti.
Avatar billede detox Nybegynder
08. november 2003 - 15:33 #13
En relativ sti skulle være ok. Fx:

$dir = "mappe1/";
$file = "fil.123";
$kate = "mappe2/";

rename("../uploads/".$dir.$file, "../uploads/".$kate.$file);
Avatar billede webcreator Nybegynder
08. november 2003 - 15:34 #14
Nu har jeg lavet det i stil med Sukos (men hvor mine variabler hedder det rigtige). Virker ikke :

rename("$basedir . $dir . $file , $basedir . $kate . $file");
Avatar billede webcreator Nybegynder
08. november 2003 - 15:35 #15
Det er forresten en linux-server, hvis det kan have nogen betydning.
Avatar billede webcreator Nybegynder
08. november 2003 - 15:56 #16
Så er der 20 points i stedet. Mere fair.
Avatar billede detox Nybegynder
08. november 2003 - 16:01 #17
Får du nogen fejlbeskeder?
Avatar billede webcreator Nybegynder
08. november 2003 - 16:02 #18
Nej, ingen overhovedet.
Avatar billede detox Nybegynder
08. november 2003 - 16:03 #19
Og hvordan ser din nuværende kode ud?
Avatar billede webcreator Nybegynder
08. november 2003 - 16:06 #20
$basedir = $_SERVER["DOCUMENT_ROOT"] ."/uploads/";
$dir = $get["kate"];
$file = $get["file"];

rename($basedir . $dir . $file , $basedir . $kate . $file);

echo "File moved";
exit;
Avatar billede detox Nybegynder
08. november 2003 - 16:11 #21
$dir = $get["kate"]; skal nok være $_GET["kate"];
Avatar billede detox Nybegynder
08. november 2003 - 16:11 #22
Hvordan ser adresselinien ud?
Avatar billede detox Nybegynder
08. november 2003 - 16:12 #23
og hvad indeholder: $kate?
Avatar billede webcreator Nybegynder
08. november 2003 - 16:13 #24
Nej. Det er hentet fra en database :)
Avatar billede webcreator Nybegynder
08. november 2003 - 16:13 #25
$kate indeholder mappen, som filen skal flyttes til.
Avatar billede detox Nybegynder
08. november 2003 - 16:16 #26
Prøv at se hvad dette giver:

$basedir = $_SERVER["DOCUMENT_ROOT"] ."/uploads/";
$dir = $get["kate"];
$file = $get["file"];
echo $basedir . $dir . $file."<br />";
echo $basedir . $kate . $file."<br />";
exit;
Avatar billede webcreator Nybegynder
08. november 2003 - 16:21 #27
/ens/uploads/mapp1fil1.doc
/ens/uploads/mappe2fil1.doc
Avatar billede detox Nybegynder
08. november 2003 - 16:23 #28
Ja, så mangler der jo en /. Hvis ellers stien er rigtig, så prøv med:

$basedir = $_SERVER["DOCUMENT_ROOT"] ."/uploads/";
$dir = $get["kate"];
$file = $get["file"];

rename($basedir . $dir . "/" . $file , $basedir . $kate . "/" . $file);

echo "File moved";
exit;
Avatar billede detox Nybegynder
08. november 2003 - 16:26 #29
Ellers vil jeg satse på den relative sti:


$dir = $get["kate"];
$file = $get["file"];
rename("../uploads/".$dir."/".$file, "../uploads/".$kate."/".$file);
echo "File moved";
exit;
Avatar billede detox Nybegynder
08. november 2003 - 16:29 #30
Forøvrigt skal du bemærke at du har:
mapp1
skulle måske være:
mappe1
Avatar billede webcreator Nybegynder
08. november 2003 - 16:32 #31
Ja, det var en indtastningsfejl før :)
Avatar billede detox Nybegynder
08. november 2003 - 16:33 #32
Ok
Avatar billede webcreator Nybegynder
08. november 2003 - 16:47 #33
2 sek. Serveren skal lige have opdateret softwaren. Tager lige en halv - en times tid.
Avatar billede webcreator Nybegynder
08. november 2003 - 17:35 #34
Virker heller ikke med relativ sti
Avatar billede webcreator Nybegynder
08. november 2003 - 17:37 #35
Ikke engang denne virker :
rename("../uploads/Dansk/midt_om_natten.doc", "../uploads/Tysk/midt_om_natten.doc");
Avatar billede webcreator Nybegynder
08. november 2003 - 17:40 #36
Virker heller ikke :
$bd = $_SERVER["DOCUMENT_ROOT"];
    rename($bd."/uploads/Dansk/midt_om_natten.doc", $bd."/uploads/Tysk/midt_om_natten.doc");
    echo "DONE"; exit;
Avatar billede webcreator Nybegynder
08. november 2003 - 17:41 #37
Jeg kan tilsyneladende ikke flytte rundt på filerne.
Avatar billede detox Nybegynder
08. november 2003 - 17:41 #38
Findes mapperne "Dansk" og "Tysk"?
Avatar billede detox Nybegynder
08. november 2003 - 17:41 #39
Og husk forskel på små og store bogstaver.
Avatar billede webcreator Nybegynder
08. november 2003 - 17:43 #40
Ja. Jeg er helt sikker - både med store og små bogstaver.
Avatar billede webcreator Nybegynder
08. november 2003 - 17:44 #41
Jeg må se om jeg kan kopiere dem så - og efterfølgende slette filen.
Avatar billede webcreator Nybegynder
08. november 2003 - 17:47 #42
Noo. Der var ikke s på upload ;(
Det beklager jeg meget. Sikke en masse spildtid :(
Avatar billede detox Nybegynder
08. november 2003 - 17:47 #43
Det der undrer mig er du ikke får nogen fejlmelding. Har du sat error_reporting i din 'php.ini', så kunne du måske prøve med denne linie øverst i din fil:

error_reporting (E_ALL);
Avatar billede webcreator Nybegynder
08. november 2003 - 17:48 #44
Men nu virker det. Mange tak.
Avatar billede detox Nybegynder
08. november 2003 - 17:49 #45
Sådan lige pludselig?
Avatar billede webcreator Nybegynder
08. november 2003 - 17:50 #46
Nej.

Jeg skrev jo mappenavnet som "uploads". Men ved nærmere eftersyn så jeg, at mappen kun hed "upload".
Avatar billede webcreator Nybegynder
08. november 2003 - 17:51 #47
Kommentar: webcreator
08/11-2003 17:47:48
Avatar billede detox Nybegynder
08. november 2003 - 17:55 #48
Hmm, ok. Velbekommen, men noget tyder på din error_reporting er sat for lavt, når du ikke får fejlmelding på så noget. Sæt den til: E_ALL. Det gør det noget nemmere at programmere korrekt. c",)
Avatar billede webcreator Nybegynder
08. november 2003 - 17:56 #49
Ok. Mange tak :)
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