select link en insert in dbf
Ik kan in een form een file uit mijn site selecteren en dit uploaden. Daarbij moet ik de bestemming (dir) opgeven waar de file heen moet. Werkt prima.
Ik ben op zoek naar de werkwijze om op dezelfde manier een bestand te kunnen selecteren en niet te uploaden maar een link naar het bestand in de dbf op te nemen.
Dus eigenlijk het juiste path waar de file staat. Bijvoorbeeld: ../video/groot/ test/mp4.
Dus niet uploaden maar een link naar het bestand.
Misschien een simpele vraag maar ik zit misschien in de verkeerde richting te expirimenten met __DIR__ en __FILE__ want dan krijg ik het hele path en niet een relatieve verwijzing.
Ik hoop dat het een beetje duidelijk is.
Alvast bedankt.
Ik neem aan dat niet iedereen zomaar spul kan uploaden maar dat dit op een of andere manier beveiligd is.
Gewijzigd op 12/06/2019 19:09:00 door Thomas van den Heuvel
Vanaf je site (als deze niet local is) kan je geen link naar een (local) bestand maken.
Ik zou een bestanden kunnen uploaden naar een bepaalde directory binnen de site. Dit werkt oke maar... de bestanden staat er al dus uploaden is niet nodig. Ik wil bij een invoer form met SELECT een bestand kunnen selecteren om zo de link naar het bestand in de dbf op te slaan. Het bestand selecteren is ook niet het probleem maar de relatieve directory van het bestand.
Toevoeging op 12/06/2019 17:32:10:
Begrijp ik dus dat het alleen werkt met __DIR__ als de site online op de serverd draaid.
Het komt er dus eigenlijk op neer dat je gewoon een lijstje hebt met relatieve paden (evt. gepresenteerd in een gelaagde structuur = directories, maar dat is dus puur presentatie). Daaruit mogen ze een waarde kiezen (en geen anderen), en die sla je op. Eigenlijk net zoals dat je uit het een willekeurig lijstje een waarde zou mogen kiezen.
"magische constante" en wijst naar de directory van het uitvoerende script, dit heeft niets met een geupload bestand te maken. Maar dit maakt niet uit of dit een lokale of online server is, de werking is altijd hetzelfde - het is alleen niet wat je zoekt.
Op eenzelfde manier kun je een constante definiëren voor een uploadlocatie (de uiteindelijke locatie, na het verplaatsen vanuit de tijdelijke directory). En deze constante kun je weer af laten hangen van het domein. Dit alles lijkt mij onderdeel van directory- en padenconfiguratie van je applicatie.
En om dus deze oplossing te deployen op meerdere plaatsen is het dus niet handig om de hele URL te hard coden in je database.
Je zou dus zoiets kunnen doen:
Vervolgens zou je ook een functie kunnen maken voor het genereren van een link waarin je dynamisch een volledige (absolute) URL opbouwt waarin je het protocol (http, https etc.) opneemt, de hostname ($_SERVER['SERVER_NAME']), en eventueel extra paden (PUBLIC_UPLOAD_LOCATION) en bestandsnamen (de naam waaronder je het bestand hebt geupload).
Op die manier heb je een dynamische oplossing die op alle omgevingen op dezelfde manier werkt.
__DIR__ is een Op eenzelfde manier kun je een constante definiëren voor een uploadlocatie (de uiteindelijke locatie, na het verplaatsen vanuit de tijdelijke directory). En deze constante kun je weer af laten hangen van het domein. Dit alles lijkt mij onderdeel van directory- en padenconfiguratie van je applicatie.
En om dus deze oplossing te deployen op meerdere plaatsen is het dus niet handig om de hele URL te hard coden in je database.
Je zou dus zoiets kunnen doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
switch ($_SERVER['SERVER_NAME']) {
case 'site.local':
define('PUBLIC_UPLOAD_LOCATION', 'files/uploads');
// meer serverspecifieke configuratie-opties
break;
case 'site.com':
define('PUBLIC_UPLOAD_LOCATION', 'uploads');
// meer serverspecifieke configuratie-opties
break;
// et cetera
default: die('unknown hostname');
}
?>
switch ($_SERVER['SERVER_NAME']) {
case 'site.local':
define('PUBLIC_UPLOAD_LOCATION', 'files/uploads');
// meer serverspecifieke configuratie-opties
break;
case 'site.com':
define('PUBLIC_UPLOAD_LOCATION', 'uploads');
// meer serverspecifieke configuratie-opties
break;
// et cetera
default: die('unknown hostname');
}
?>
Vervolgens zou je ook een functie kunnen maken voor het genereren van een link waarin je dynamisch een volledige (absolute) URL opbouwt waarin je het protocol (http, https etc.) opneemt, de hostname ($_SERVER['SERVER_NAME']), en eventueel extra paden (PUBLIC_UPLOAD_LOCATION) en bestandsnamen (de naam waaronder je het bestand hebt geupload).
Op die manier heb je een dynamische oplossing die op alle omgevingen op dezelfde manier werkt.
Gewijzigd op 12/06/2019 17:56:51 door Thomas van den Heuvel
Dank voor de tips en uitleg. Ik ga ermee aan de slag!