Avatar billede jivefive Nybegynder
20. september 2004 - 20:11 Der er 7 kommentarer og
1 løsning

Konstant der indeholder stien til upload kataloget

Hej alle sammen

Er der nogen der ved, om der er en konstant i PHP, der returnerer stien til upload kataloget??

Hvis man tager en phpinfo(), så er der en string, der hedder upload_tmp_dir. Men kan man få fat i denne string i sit script, så man ikke behøver, at hårdkode stien til upload kataloget ind i scriptet?

Hilsen
JiveFive
Avatar billede arne_v Ekspert
20. september 2004 - 20:22 #1
Bruger man ikke move_uploaded_file så man ikke behøver vide hvor de ligger ?
Avatar billede baitianlong Nybegynder
20. september 2004 - 20:48 #2
jo, som eksempel:

move_uploaded_file($_FILES['upload_file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/myfiles/".$_FILES['upload_file']['name']);
Avatar billede jivefive Nybegynder
20. september 2004 - 22:41 #3
Hej Arne v og legende.dk

Jeg ved godt, at man kan flytte sine uploaded filer med move_uploaded_file og at man kan gå ud fra $_SERVER['DOCUMENT_ROOT'] for at finde roden af sit website.

Men i dette tilfælde er det en temporær fil, som jeg selv opretter og altså ikke en fil, der er uploadet og derfor kan jeg ikke tilgå den via move_uploaded_file og mit upload katalog ligger i denne sammenhæng udenfor webscope (c:\php\upload), så jeg kan heller ikke bruge $_SERVER['DOCUMENT_ROOT'] til formålet.

Problemet er i bund og grund, at jeg skal transformerer et eksternt xml dokument med et lokalt xslt ark og det gør jeg via Sablotron. Men hele løsningen skal kører under en IIS server på en MS platform og her har Sablotron en bug, der gør, at man ikke kan loade et xml dokument via en url og derfor bliver nødt til først at hente dokumentet og gemme det lokalt, før det kan transformeres. Derfor skal jeg bruge et katalog, som jeg ved brugeren har skriveadgang til (upload). Men da løsningen skal kunne distribueres til andre platforme, hvor upload kataloget kan være placeret et andet sted kan jeg ikke hårdkode det ind i scriptet.

Hilsen
JiveFive
Avatar billede baitianlong Nybegynder
20. september 2004 - 22:49 #4
Nu kender jeg ikke lige Sablotron, men hvad det end er, må der da være mulighed for at definere hvor filen skal havne. Generelt på webhoteller havner filen man uploader, som du selv siger, i en tmp mappe.

Jeg tror ikke jeg kan hjælpe mere her, men du har eksperten's ekspert i huset oven over mig, så det bliver nok løst :)
Avatar billede jivefive Nybegynder
20. september 2004 - 22:55 #5
Hej legend.dk

Sablotron er et inkluderet XML toolkit til PHP 4.X - men jeg henter ikke filen vha. Sablotron, da det er her buggen ligger.

I stedet bruger jeg fopen til at skabe en lokal fil, som jeg så henter det eksterne xml dokument ind i og gemmer og her bliver jeg nødt til at hårdkode stien til den lokale fil, som jeg skaber (c:\php\upload\temp.xml) og det er lidt noget rod, for godt nok ved jeg, hvor jeg placerer filen. Men jeg kan jo ikke på forhånd vide, hvor upload kataloget ligger og det er her, det ville være skønt, hvis der var en konstant mend stien til upload kataloget på den pågældende server ala getenv('UPLOAD_TMP_DIR') eller så.

Hilsen
JiveFive
Avatar billede arne_v Ekspert
20. september 2004 - 23:13 #6
Prøv og kør den her kode:

<?php
$upltmpdir = ini_get('upload_tmp_dir');
if($upltmpdir=="") $upltmpdir = getenv('TEMP');
print $upltmpdir;
?>
Avatar billede jivefive Nybegynder
20. september 2004 - 23:28 #7
Hi arne_v

Jeps det var da lige det jeg ledte efter. En gang imellem kan man ikke se skoven for bare træer.

Vil du poste et svar, så skal jeg nok accepterer det.

Tak
JiveFive
Avatar billede arne_v Ekspert
20. september 2004 - 23:30 #8
svar
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