Auteur Topic: Webapplicatie  (gelezen 5097 keer)

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #15 Gepost op: 12 juni 2020, 21:46:59 »
Hallo,
ik ga het proberen. Kun je me aub uitleggen wat die "openbase_dir" precies is?
Heb er nog eens over gelezen, maar begrijp niet goed wat ik ermee moet/kan.
Het betreffende veld is nu leeg, welke waarde heeft "openbase_dir" dan nu?
Bvd en mvg
  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #16 Gepost op: 12 juni 2020, 22:10:41 »
De PHP code om een csv bestand te tonen en te importeren die ik eerder heb gegeven, werkt bij mij zonder iets in te stellen.
Het openbasedir veld bij de PHP instellingen is leeg.

Probeer het eens met een csv bestand in de web map zelf.
Dus zonder de lange path naam naar een andere map.

En dan uitbreiden naar andere mappen/directories.
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #17 Gepost op: 12 juni 2020, 22:59:48 »
Wyodor,
Het importeren vanuit de web-map zelf (of een map daarin) werkt ook prima.
Het gaat er juist om om te importeren van buiten de web-map.
Bijv vanuit een gedeelde map of vanuit een home-map van een gebruiker, maar dat lukt niet.
Waar dient openbasedir voor?

mvg
  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #18 Gepost op: 13 juni 2020, 07:51:06 »
Citaat
Waar dient openbasedir voor?
Daar vul je de pathnaam buiten de web map in waar PHP bij mag.
Ik weet niet meer precies hoe de notatie was.
Ik dacht zoiets:

/volume1/homes/naam/;/volume1/een/ander/pad/;
Correctie : geen ; maar een : en zonder / op het eind.

Zo dus :

Citaat
gebruik een dubbele punt : om elk pad te scheiden. Bijvoorbeeld:/etc:/tmp:/usr/bin/php

https://www.synology.com/nl-nl/knowledgebase/DSM/help/WebStation/application_webserv_php
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #19 Gepost op: 13 juni 2020, 13:05:04 »
Hallo Wyodor,
nadat mijn openbase_dir is aangepast naar:
/volume1/Gedeelde Map
krijg ik de foutmelding: No input file specified.

In de Gedeelde Map staan alleen foto's (.jpg) waarnaar ik vanuit de webapplicatie wil verwijzen.
Hij vindt dus iets niet. Wat zou er mis kunnen zijn?

mvg
  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #20 Gepost op: 13 juni 2020, 14:15:33 »
Er is niks mis mee.
Met openbasedir kan alleen PHP daar bij.
Om bijvoorbeeld een csv bestand te lezen.
Zoals in eerste instantie de vraag was.
Het is niet bedoeld om afbeeldingen in een webpagina te tonen.
De webserver (apache) kan daar niet bij.
Als je dat wilt, moet je een symbolic link naar die map maken.

Of je moet met PHP een afbeelding openen en met <img src="<?php echo toonafbeelding.php; ?>"> in een webpagina tonen.
Met code zoals hier uitgelegd :

https://www.php.net/manual/en/function.readfile.php

Maar zoals gezegd, dat was de vraag niet.
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #21 Gepost op: 13 juni 2020, 14:35:32 »
Hier een voorbeeld zonder enige aanpassing bij instellingen waar dan ook.

Bestandsnaam : toonafbeelding.php
<?php
$file 
'/volume1/photo/Devolo/Devolo 001.jpg';

if (
file_exists($file)) {
    
header('Content-Description: File Transfer');
    
header('Content-Type: application/octet-stream');
    
header('Content-Disposition: attachment; filename="'.basename($file).'"');
    
header('Expires: 0');
    
header('Cache-Control: must-revalidate');
    
header('Pragma: public');
    
header('Content-Length: ' filesize($file));
    
readfile($file);
    exit;
}
?>

HTML code in :  toonafbeelding.html
Je hoef geen echo te doen, alleen een link naar het PHP bestand.

<img src="toonafbeelding.php" style="width: 220px;" />
Wil je meer fotos tonen dan gebruik je scandir of glob

https://www.php.net/manual/en/function.scandir.php

https://www.php.net/manual/en/function.glob.php
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #22 Gepost op: 13 juni 2020, 18:08:13 »
Wyodor,
misschien begrijpen we elkaar niet helemaal, maar ik heb in elk geval al veel bijgeleerd.

Mijn PHP/MySQL-webapplicatie kan een csv-file importeren in de database, dat lukt prima.
Die csv-file bevat verwijzingen naar jpg's.

Echter: die csv-file ligt in een map onder de standaard-map 'web'.
Ik zou graag willen dat die csv-file buiten de standaard-map web ligt en dat de applicatie die kan importeren.
Bijv in de standaard map "Gedeelde Map". Duidelijker kan ik het niet maken, maar vraag rustig als je iets mist.

Wat er momenteel gebeurt als ik bij open_basedir invul: /volume1/Gedeelde Map, is de foutmelding: No inputfile specified
zodra ik in de browser mijn applicatie start. Als open_basedir leeg blijft werkt de applicatie weer maar kom ik dus niet buiten de map 'web'.

mvg
  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #23 Gepost op: 14 juni 2020, 18:48:07 »
Dit is een oplossing die bij mij werkte.

Na het aanmaken van een gedeelde map kreeg ik de melding No input file specified als ik een plaatje wilde tonen met de eerder genoemde PHP code.
In het PHP profile in webstation vinkje gezet bij openbasedir, gedeelde map path ingevuld en op OK geklikt.
Foutmelding bleef.
Vinkje je weer uitgezet en toen werkte alles.
Vraag mij niet waarom.
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #24 Gepost op: 14 juni 2020, 19:03:38 »
Om de afbeeldingen in een Gedeelde Map, of elders, in een web pagina album te tonen, heb ik dit bedacht.

Drie bestanden:
albumpath.txt
albumafbeelding.php
album.php


albumpath.txt is een tekstbestand dat de pathnaam naar een map ergens op de server bevat.
Dit bijvoorbeeld :

/volume1/Gedeelde Map/
Wil je een andere map tonen, verander je de path naam.

albumafbeelding.php is een PHP bestand dat de afbeelding ophaald en uitvoert :

<?php
$photo 
$_GET['photo'];
$path file_get_contents('albumpath.txt');
$file $path $photo;
if ( 
file_exists$file ) )
{
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' filesize($file));
readfile($file);
exit();
}
?>

album.php is de webpagina die naar de browser wordt gestuurd en moet je naar eigen inzicht inrichten.

<h2>Photo Album</h2>

<style>
figure {
display:inline-block;
width: 250px;
margin: 0.500em;
}
figure img {
width: 100%;
}
figcaption {
text-align: center;
}
</style>

<?php
$path 
file_get_contents('albumpath.txt');
$extensions = array("jpg""jpeg""png""gif");
if ( 
$files scandir$path ) )
{
foreach ( $files as $image )
{
$imageFileType strtolowerpathinfo$imagePATHINFO_EXTENSION ) );
if( in_array$imageFileType $extensions ) )
{
$path_parts pathinfo$image );
$title $path_parts['filename'];

$size getimagesize$path $image );
$maxwidth $size[0];
?>


<figure>
<img src="albumafbeelding.php?photo=<?php echo $image?>" style="max-width: <?php echo $maxwidth?>px;" />
<figcaption><?php echo $title?></figcaption>
</figure>

<?php
}
}
}
?>
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #25 Gepost op: 15 juni 2020, 13:41:31 »
Het probleem is dat nadat ik het vinkje van open_basedir heb aangevinkt, mijn webappl niet meer start maar de foutmelding "No input file specified" geeft. Als ik het vinkje weghaal heb ik de oude situatie weer, dwz applicatie werkt weer met oude probleem.
Ik ga met jouw voorbeeld eens stoeien.
mvg
  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #26 Gepost op: 05 augustus 2020, 10:30:32 »
Hoe kan ik vanuit een submap - zoals 'web' - een file benaderen in "Gedeelde map" (die een niveau hoger ligt)?
Welke rechten moeten daarvoor waar worden gezet?
Ik heb al zitten stoeien met de machtigingen, maar het bestand in "Gedeelde map" blijft niet te openen.
Enig idee?


  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0

Offline Plerry

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 17
  • -Ontvangen: 289
  • Berichten: 1.504
  • Tom Poes, verzin een list ...
Re: Webapplicatie
« Reactie #27 Gepost op: 05 augustus 2020, 11:57:20 »
Of, en zo ja hoe zoiets kan hangt af van wat je precies wil.
Maar je vraag is redelijk vaag.
Wil je vanuit de web-folder, bijv. middels een Include of PHP script bestanden elders (dan in de web-folder of subfolder daarvan) als web-pagina included of aanspreken?
Wil je vanuit een bestands-browser (bijv. Windows File Explorer of Finder) een bestand in een andere share (gedeelde folder) op je NAS kunnen openen of aanspreken?
Of wil je .... ?

There are only 10 kinds of people: ... those who understand binary, and those who don't.

Offline Wyodor

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1
  • -Ontvangen: 156
  • Berichten: 766
Re: Webapplicatie
« Reactie #28 Gepost op: 05 augustus 2020, 12:34:04 »
In dit topic kwam het ook ter sprake :
https://www.synology-forum.nl/web-server/webapplicatie/
  • Mijn Synology: DS720+
  • HDD's: 2 x ST4000VN008

Offline a.m.j.janssen

  • Bedankjes
  • -Gegeven: 8
  • -Ontvangen: 1
  • Berichten: 142
Re: Webapplicatie
« Reactie #29 Gepost op: 05 augustus 2020, 16:46:37 »
Ik zal het probleem nog eens voorleggen:
ik heb een php/mysql-applicatie die ligt - standaard - in de map: 'web'.
in een tabel in de database staan verwijzingen naar foto's; die foto's staan in een submap van 'web'.
de foto's wil ik echter buiten de map 'web' hebben, bijv in een  gedeelde map.
als ik op een verwijzing naar een foto klik, zie ik de foto als die tenminste in een submap van 'web' staat.
een verwijzing naar een foto in een gedeelde map gaat mis; daar heb ik niet de machtiging voor.
Welke machtiging moet ik dan waaraan toekennen?
Heb al van alles geprobeerd, maar helaas.
Iemand een tip?
  • Mijn Synology: DS414
  • HDD's: 4x WD20EZRX-22D8PB0


 

Berichten sturen vanuit webapplicatie

Gestart door S171Board Web Station

Reacties: 0
Gelezen: 627
Laatste bericht 16 mei 2021, 18:53:12
door S171
Webapplicatie via Internet bereikbaar maken.

Gestart door a.m.j.janssenBoard Web Station

Reacties: 10
Gelezen: 1343
Laatste bericht 07 januari 2022, 12:44:11
door Birdy