Binnen map de extensie vinden als alleen de naam bekend is.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Hans De Ridder

Hans De Ridder

20/06/2017 15:26:57
Quote Anchor link
Ik gebruik een fotoboek.
Hiervan wil ik de link waar de foto naar verwijst (normaal grotere foto) veranderen naar een document
(.doc of .docx)
De naam van het document is hetzelfde als van de foto.
Op zich lukt dat allemaal prima zolang ik een vaste extensie heb.
Alleen kan het document zowel een .doc zijn als een docx.
Ik moet nu dus met uitsluitend de bekende naam in de map waar de documenten zich bevinden
achterhalen wat de extensie is van dat bestand.
Het gaat om de laatste regel in de code.
Waar dus de .doc vervangen moet worden door een variabele die .doc of .docx kan bevatten.
Iemand die me op weg kan helpen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
// bepaal de extensie van de foto (jpg, jpeg, gif,png)
$extens = pathinfo($relativePath, PATHINFO_EXTENSION);
// bepaal de positie van extensie (woord kan ook in de bestandsnaam voorkomen)
$extensPos = strrpos($relativePath,".");
// maak uitsluitend de naam van de foto
$string = substr($relativePath, 0, $extensPos);
// verander de extensie naar doc of docx
$relativePath = $string.'.'.'doc';
 
PHP hulp

PHP hulp

30/11/2024 05:50:37
 
- Ariën  -
Beheerder

- Ariën -

20/06/2017 15:35:47
Quote Anchor link
Kan je de extenties niet in een array plaatsen, en met in_array controleren of hij toegelaten is?
 
Hans De Ridder

Hans De Ridder

20/06/2017 15:39:51
Quote Anchor link
de bestanden zijn altijd goedgekeurd..wordt gecontroleerd bij het uploaden...

Ik bedenk me net dat het voldoende zou zijn om te schecken of de .doc bestaat.
Zo niet dan is het vanzelfsprekend een .docx

dus zoiets als

if exist ... else ....

Volgens mij werkt het onderstaande.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
if (file_exists($relativePath)) {
    echo "The file $relativePath exists";
} else {

$relativePath = $relativePath.'x';

    echo "The file $relativePath exists";
}
Gewijzigd op 20/06/2017 15:57:25 door Hans De Ridder
 
Ivo P

Ivo P

20/06/2017 16:26:28
Quote Anchor link
en toch zou ik er niet blind vanuit gaan dat als file abc.doc niet bestaat het zeker is dat abc.docx

Het is maar 1 extra if en een aanroep van file_exists() (of is_file)

Maar in het geval de docx toch niet bestaat, kun je nog in je code ingrijpen
 
Ward van der Put
Moderator

Ward van der Put

20/06/2017 16:28:40
Quote Anchor link
Ik zou hier is_file() gebruiken en er per definitie niet van uitgaan dat een bestand bestaat tot in lengte der dagen als het eenmaal is geüpload. Bestanden kunnen verdwijnen door menselijke fouten en door systeemfouten, bijvoorbeeld.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
if (is_file($string . '.doc')) {
    // Het is een .doc
} elseif (is_file($string . '.docx')) {
    // Het is een .docx
} else {
    // Het is geen van beide: exception of foutafhandeling.
}
?>
 
Hans De Ridder

Hans De Ridder

20/06/2017 17:11:50
Quote Anchor link
Bedankt allemaal voor het meedenken.

In dit geval worden er doc of docx bestanden geupload door ingelogde leden.

Pagina 1 van het document wordt omgezet naar een afbeelding.

De thumb van die afbeelding komt in het fotoboek.

Het document wordt in een andere map gezet.

Bij clicken op de thumb opent de google viewer met het complete document.

Ik zal inderdaad in de foutafhandeling jullie suggesties meenemen.
 



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.