Bruger man ikke move_uploaded_file så man ikke behøver vide hvor de ligger ?
jo, som eksempel:
move_uploaded_file($_FILES['upload_file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/myfiles/".$_FILES['upload_file']['name']);
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
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 :)
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
Prøv og kør den her kode:
<?php
$upltmpdir = ini_get('upload_tmp_dir');
if($upltmpdir=="") $upltmpdir = getenv('TEMP');
print $upltmpdir;
?>
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