Avatar billede phliplip Nybegynder
06. februar 2004 - 09:09 Der er 9 kommentarer og
1 løsning

Upload: Hvordan skal stien være ?

Hej Exp !

Sidder lige og roder med mit upload script som så mange gange før !

På min hjemme/offline (WinXP Pro, Apache 2.0.48, PHP 4.3.4) server bruger jeg:

$destination = "billeder/".$_SESSION[informationer][id]."-2-".$indsaet_id.".".$billede_efternavn;
move_uploaded_file($_FILES["billede".$i][tmp_name], "../hotel/".$_SESSION[informationer][licens_nr]."/".$destination);

Og det virker fine !

Men lige så snart jeg rykker det på webben så virker det ikke så fine :( Samme bibliotek struktur !

Men hvis jeg så kigger på et andet script vi har liggende på en anden server hos samme firma..

$dist = "/var/www/html/logodir/";
move_uploaded_file($_FILES['upfile']['tmp_name'][$i], $dist.$newname);

Så spørgsmålet er, SKAL man bruge den 'absolute' sti eller kan man godt gøre som i første eksempel ??
Avatar billede sukos Juniormester
06. februar 2004 - 09:16 #1
Det er altid en go' ide at bruge den fulde sti når du vil noget med filer på serveren. Netop for at noget virker et sted, men ikke et andet sted.
Avatar billede sukos Juniormester
06. februar 2004 - 09:19 #2
Og er det til et dir som kan nås med http, så brug:

$dist = $_SERVER["DOCUMENT_ROOT"] ."/logodir/";

altså, logodir ligger så f.eks. domænanavn.dk/logodir/

Er det uden for http, ja, så skal du ændre stien på hver server så det passer sammen.

$dist = "/var/public/domain/uploaddir/";
Avatar billede sukos Juniormester
06. februar 2004 - 09:19 #3
Er det uden for http, ja, så skal du ændre stien i scriptet til hver server
Avatar billede sukos Juniormester
06. februar 2004 - 09:22 #4
Eller,
<?php
if($_SERVER["SERVER_NAME"] == "showsource.dk") {
$dist = "/fullpath/to/logodir/";
}else{
$dist = "/anden/sti/til/logodir/";
}
Avatar billede phliplip Nybegynder
06. februar 2004 - 09:28 #5
Ok.. det anede mig ! Men kan se problemer i at min udviklings server skal have én sti og vores webservere skal have en anden sti..

Nå.. prøver lige !
Avatar billede sukos Juniormester
06. februar 2004 - 11:47 #6
I stil med min sidste kommentar, kan du gøre så'n her:

<?php
$mainserver = "mainserver.dk";
$dist = "/fuld/sti/til/dir/";

if($_SERVER["SERVER_NAME"] != $mainserver) {
$dist = "/ny/sti/til/dir/";
}

echo $dist;
?>

Og igen, brug endelig altid den fulde sti, når du har med filer/dirs at gøre.
Avatar billede phliplip Nybegynder
06. februar 2004 - 15:26 #7
Ok.. det virker perfekt !! skulle bare bruge DOCUMENT_ROOT :D

Takker Sukos !!

MEEEN der er lige et andet problem.. ved ikke om du kender til det !

Vi bliver pt. hostet hos Enavn.dk og når jeg kan uploade filen til serveren og den kommer i den rigtige mappe.. men filen er pr. default CHMOD'et til 600.. dvs. når jeg prøver at bruge den på siden, så kommer den der "billedet kan ikke vises" kasse.. hvis jeg så via FTP CHMOD'er den til 644/766 så kan jeg se den !

Men skal jeg rode mig ud i noget med at få PHP til at CHMOD'e filen inden jeg uploader eller har du en anden idé !?
Avatar billede sukos Juniormester
06. februar 2004 - 15:38 #8
Den smule jeg har leget med CHMOD og PHP, har givet mig det indtryk at det er langt bedre at bruge er regulært FTP-program.
Men hvis du har chmod'et dir'et,
så efter move_uploaded_file()
prøv:

chmod($dist.$newname, 0644);
Avatar billede phliplip Nybegynder
06. februar 2004 - 15:47 #9
Typisk:

Skrev til Enavn om problemet..

---
Hej Philip Espersen,

Det er noget du skal sætte i upload scriptet. Det er scriptet der sætter chmod værdien på filen.
---

No shit Sherlock !

Nå... men jeg prøver CHMOD - Tak for hjælpen Sukos !
Avatar billede phliplip Nybegynder
06. februar 2004 - 15:52 #10
Nu virker det...
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