hoe controleren of bestand bestaat
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
// de direcory test dient aangemaakt te zijn met daarin het bestand somefile.txt. dit script dient ergens in een javascript bestand te worden opgenomen. als iemand de site wilt kopieeren naar een ander domein
// dan krijg je de foutmelding geen geoorloofde site. dit komt omdat omdat de map test met daarin het bestand niet bestaat.
$.ajax({
url:'https://mijnwebsite.nl/test/somefile.txt',
type:'HEAD',
error: function()
{
alert("niet gevonden);
},
success: function()
{
alert("gevonden");
}
});
</script>
<script>
// de direcory test dient aangemaakt te zijn met daarin het bestand somefile.txt. dit script dient ergens in een javascript bestand te worden opgenomen. als iemand de site wilt kopieeren naar een ander domein
// dan krijg je de foutmelding geen geoorloofde site. dit komt omdat omdat de map test met daarin het bestand niet bestaat.
$.ajax({
url:'https://mijnwebsite.nl/test/somefile.txt',
type:'HEAD',
error: function()
{
alert("niet gevonden);
},
success: function()
{
alert("gevonden");
}
});
</script>
Gewijzigd op 28/11/2024 18:56:23 door - Ariën -
Toevoeging op 28/11/2024 19:12:22:
maar kan het ook zijn dat je geen toegang krijgt ook al draait het script op de server waar het bestand staat?
Gewijzigd op 28/11/2024 19:12:56 door Paul Weiss
Code (php)
Het geeft geen 100% betrouwbaarheid, want als iemand alles wat niet bestaat doorverwijst naar een aparte pagina, en daar mist een 404-status header, dan zal dit als een 200 (OK) gezien worden. Maar als het via de webserver-deamon (Apache, Nginx, Litespeed etc..) wordt afgehandeld, dan krijg je netjes een 404 header voorgeschoteld, zoals het hoort.
Als je het lokaal op je eigen server wilt uitvoeren:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$filename = "/bla/bla/meukee.jpg";
if (file_exists($filename)) {
echo "Het bestand ".$filename." bestaat";
} else {
echo "Het bestand ".$filename." bestaat niet!";
}
?>
$filename = "/bla/bla/meukee.jpg";
if (file_exists($filename)) {
echo "Het bestand ".$filename." bestaat";
} else {
echo "Het bestand ".$filename." bestaat niet!";
}
?>
Gewijzigd op 28/11/2024 21:33:05 door - Ariën -
bedankt voor de tip. maar het moet javascript zijn. controle moet gebeuren vanuit de client kant.
Houd wel rekening met het feit dat als de website geen CORS toestaat, dat de anvraag zal mislukken.
Serverside is daarom een stuk betrouwbaarder.
bedankt. fetch ben ik niet bekend mee. cors is dat van toepassing op fetch? of ook op ajax? wat is cors precies?
https://en.wikipedia.org/wiki/Cross-origin_resource_sharing?wprov=sfla1
Gewijzigd op 29/11/2024 09:26:58 door - Ariën -
Cors is toch niet nodig op hetzelfde domein?
Klopt, de externe domein moet CORS gebruiken.
En is het nog gelukt hiermee?
ik gebruik het zonder cors, aangezien ik alleen controle kan uitoefenen op het eigen domein. de ajax werkt prima voor het doeleind waarvoor ik het wil gebruiken. hij controleeert of het bestand op de eigen server bestaat zo niet dan kan ik een ander script uitvoeren.