Beste,
Ik heb een upload scriptje geschreven, ik wil de uploader de url naar het geüploade bestand laten zien. Vreemd genoeg blijkt dit niet zo vanzelfsprekend. (voor mij toch niet)
Ik heb al geprobeerd met ale het volgende:
<?php
$_SERVER['HTTP_HOST']
$_SERVER['DOCUMENT_ROOT']
$_SERVER['SERVER_NAME']
$_SERVER['SCRIPT_FILENAME']
$_SERVER['SCRIPT_NAME']
$_SERVER['PHP_SELF']
getcwd()
?>
Uiteraard verwijzen deze allemaal naar het php bestand dat de upload doet, niet naar het geüploade bestand. Maar zelfs hier krijg ik er niet uit wat ik wil. het php bestand staat bijvoorbeeld hier: http://www.artexanis.be/uploadscript/upload.php.
Ik zou nu een output moeten hebben in deze stijl: http://www.artexanis.be/uploadscript/
Dan kan ik er de upload-directory (bepaald in een var) en de filename erachter plakken en dan heb ik de url naar het bestand. Dat is het plan, nu de uitvoering....
Sorrie, maar ik ben niet helemaal mee.
Ik neem aan dat je $_FILES["file"]["tmp_name"] bedoeld. Maar deze info geeft mij het pad van het bestand op de server, zoiets als dit:
/var/www/vhosts/artexanis.be/subdomains/moulindurivage/httpdocs enz...
plus dat is niet de locatie waar het bestand blijft staan, want verder doe ik dit:
<?php
$upload=move_uploaded_file($_FILES["file"]["tmp_name"],$filedir.$_FILES["file"]["name"]);
?>
Hoe kan ik nu de url naar het geüploade bestand laten zien?
Ik weet dat het opgelost is als ik van mijn upload directory dit maak:
/uploadscript/upload/
met een / in het begin om terug te vertrekken van root.
Maar het idee is dat ik het script samen met de map 'upload' kan verplaatsen naar een andere map zonder dat ik iets moet veranderen.
Er is vast een simpelere oplossing. Maar ik weet het even niet. Dit werkt in ieder geval.
<?php
$arr = explode('/', __FILE__, -1);
$url='http://' . $_SERVER['HTTP_HOST'] . $arr[0] . '/' . $filedir . $_FILES['file']['name'];
?>
Ik zit inderdaad ook met het gevoel dat dit ongetwijfeld eenvoudiger moet kunnen, ik heb net uw voorstel uitgeprobeerd, maar het probleem blijft hetzelfde...