select link en insert in dbf

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Peter Kroonenburg

Peter Kroonenburg

12/06/2019 16:48:12
Quote Anchor link
Wat is de beste manier om het volgende te realiseren;

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

PHP hulp

20/04/2024 14:55:21
 
Thomas van den Heuvel

Thomas van den Heuvel

12/06/2019 17:22:46
Quote Anchor link
Je zult in ieder geval je "zandbak" moeten definiëren, oftewel, je moet ergens je uploadgebied afbakenen. En als je vervolgens het bestand wil serveren dan zul je ofwel alles in de publieke directory moeten uploaden zodat iedereen hierbij kan, of het bestand serveren via een script op het moment dat deze buiten de webdirectory valt.

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

- SanThe -

12/06/2019 17:24:10
Quote Anchor link
Vanaf je site (als deze niet local is) kan je geen link naar een (local) bestand maken.
 
Peter Kroonenburg

Peter Kroonenburg

12/06/2019 17:29:34
Quote Anchor link
Misschien maakt dir duidelijker wat ik zoek;
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.
 
Rob Doemaarwat

Rob Doemaarwat

12/06/2019 17:50:22
Quote Anchor link
Ik neem aan dat ze niet *alle* bestanden op je server mogen zien/selecteren, alleen in een bepaalde map die jij vastlegt (de "zandbak" waar thomas het over heeft). Je weet dus wat de "root" is van deze zandbak. De bestanden zijn dus allemaal relatief tov deze root. Dit relatieve pad sla je op (en je controleert nog dubbel en dwars of het wel bestaat, of er geen ".." in zit om stiekem toch een niveautje omhoog te gaan, enz). Als je dan later het bestand weer wilt tonen plak je de root en het relatieve pad aan mekaar en heb je de (absolute) locatie van je bestand.

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.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/06/2019 17:54:11
Quote Anchor link
__DIR__ is een "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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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');
}

?>

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
 
Peter Kroonenburg

Peter Kroonenburg

12/06/2019 20:11:22
Quote Anchor link
Dank voor de tips en uitleg. Ik ga ermee aan de slag!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.