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....
Een geuploaded bestand komt in de tmp-dir te staan. Deze staat in $_FILES.
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?
Dat is dan toch het nieuwe path wat jij hebt opgegeven.

$filedir.$_FILES["file"]["name"]
Nee, ik denk dat mij vraag niet duidelijk is.
Zo genereer ik de URL nu:
<?php
$url="http://".$_SERVER['HTTP_HOST']."/".$filedir.$_FILES["file"]["name"];
?>
Dit geplaatst in het voorbeeld uit mijn eerste post:
Mijn upload script bevind zich hier:
http://www.artexanis.be/uploadscript/upload.php
mijn upload directory is
upload/
het bestand dat ik upload is test.txt
Dit is het resultaat van mijn url:
http://www.artexanis.be/upload/test.txt
Dit moet zijn:
http://www.artexanis.be/uploadscript/upload/test.txt

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...

Reageren