Probleem met filenaam van met PHP hernoemde file

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Andre Janssen

Andre Janssen

08/04/2021 13:49:05
Quote Anchor link
Hoi,
ik rename met PHP een bepaald bestand (op mijn NAS). Dus bijv :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php rename ("a".b","x.y") ?>
;
Op de server gaat dat prima, ik zie de hernoemde file met de juiste hernoemde naam.
Als ik die file nu met de Windows-verkenner bekijk, ziet de filenaam er heel anders uit!
Heeft iemand een idee hoe dat komt en wat ik eraan kan doen?

Bvd en mvg
 
PHP hulp

PHP hulp

29/03/2024 15:17:19
 
Thom nvt

Thom nvt

08/04/2021 13:53:28
Quote Anchor link
Van wat naar wat rename je de file precies en wat word het in Windows?
Oftewel, wat verwacht je en wat zie je?
 
- Ariën  -
Beheerder

- Ariën -

08/04/2021 14:02:28
Quote Anchor link
Sowieso heb ik het idee dat er een quote verkeerd staat. Mogelijk is dat de oorzaak:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php rename("a.b","x.y") ?>
 
Thom nvt

Thom nvt

08/04/2021 14:04:44
Quote Anchor link
Ik vermoed dat het een voorbeeldje was Ariën, vandaar dat ik om de daadwerkelijke filenames vraag.
rename() is een vrij straight-forward functie (ook qua implementatie "onder de motorkap") dus het probleem kán bijna nergens anders zitten dan in de daadwerkelijke filenames.
 
Andre Janssen

Andre Janssen

08/04/2021 14:06:57
Quote Anchor link
Hallo Thom,

Dat is een snelle reactie!

ik rename (met PHP) bijv. een pdf-file naar een andere naam:

bijv.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
  $a
="ABC_01.pdf";
  $b="XYZ_01_02.pdf";
  rename ($a,$b);
?>

Op de NAS ziet het er prima uit. Maar als ik vanaf mijn pc diezelfde hernoemde file met de Windows-verkenner bekijk (openen kan gewoon) dan is de filenaam abacadabra....
Omdat dit in een loop met een groot aantal bestanden gebeurt, herken je de files niet meer vanwege de vreemde namen.
Enig idee?
mvg
 
- Ariën  -
Beheerder

- Ariën -

08/04/2021 14:08:35
Quote Anchor link
Kan je 'abacadabra' eens verduidelijken?
Of staat dat er letterlijk? Afbeelding
 
Thom nvt

Thom nvt

08/04/2021 14:12:06
Quote Anchor link
Ach, soms kom je net op het forum al er een vraag gesteld word. Toeval dus :)

En inderdaad, welk resultaat krijg je te zien?
Copy-paste of plaats een screenshot, een letterlijk voorbeeld kunnen we veel meer mee dan iets vaags als "abracadabra"
 
Ivo P

Ivo P

08/04/2021 14:25:21
Quote Anchor link
toevallig letters met accenten gebruikt? é of ö etc?

En zijn die verdubbeld naar 2 rare tekens per letter?
 
Andre Janssen

Andre Janssen

08/04/2021 14:31:56
Quote Anchor link
Hallo,
Ja die 'abacadabra' is inderdaad ter vervanging van een wildvreemde filenaam.
En ja, in het eerste voorbeeld staat een dubbele quote verkeerd.

Een echt voorbeeld is (onderdeel uit de webapplicatie):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
 $filenameORG
="NUTHR-026-01.pdf";
 $filenameNEW);"T007bv_1203.bv_01.pdf";
?>


Bekijken van de hernoemde filenaam op de NAS ziet er goed uit.
Maar met de Windows-verkenner bekeken (vanaf de pc) zie ik bijv als resultaat: "T9MCGF~W.PDF"

Enig idee?
 
- Ariën  -
Beheerder

- Ariën -

08/04/2021 14:35:57
Quote Anchor link
Regel 3 is wel raar met die );, maar dat lijkt mij een copy/paste foutje hier.

Doe je nog iets vreemds met tekencoderingen of iets dergelijks?
 
Thom nvt

Thom nvt

08/04/2021 14:41:08
Quote Anchor link
Via welke methode koppelt je Windows machine aan die NAS? SMB/CIFS, WebDAV, NFS?
Als ik dat zo zie lijkt mij dat het ergens in het genetwerkte bestandssysteem niet goed gaat tussen tekencoderingen.
 
Andre Janssen

Andre Janssen

08/04/2021 14:48:42
Quote Anchor link
Ja, dat haakje hoort en staat er inderdaad ook niet, slip of my finger.....
Nee, ik doe niks met tekencodering of zo.

Ik heb een Excel-tabel met twee kolommen: in de ene kolom staat de huidige filenaam en achter een puntkomma staat de nieuwe naam. De php-rename werkt prima, als ik het op de server bekijk (met Filestation, een soort verkenner op de server). Maar bekeken vanuit mijn pc, met de Windows-verkenner dus, zie ik een rare naam (zie eerder).
De file is nu niet meer herkenbaar.
Geen idee hoe dit komt. Ik zoek natuurlijk verder, maar misschien klinkt het bekend?
Bvd en mvg
 
Ivo P

Ivo P

08/04/2021 14:53:41
Quote Anchor link
Bij alle rename-acties, of bij een of enkele files?
 
Thom nvt

Thom nvt

08/04/2021 14:54:02
Quote Anchor link
Nu ik er even goed over nadenk, die filename ziet er verdacht veel uit als DOS 8.3 filename format (voor de dinosaurussen onder ons).
Lijkt jouw situatie toevallig op degene die in deze Reddit-post beschreven staat? Want als dat het geval is ligt het probleem bij de koppeling tussen je Windows machine en je Synology NAS.

Edit: Misschien biedt deze StackOverflow post een oplossing
Gewijzigd op 08/04/2021 14:55:15 door Thom nvt
 
Ad Fundum

Ad Fundum

08/04/2021 16:07:51
Quote Anchor link
Andre Janssen op 08/04/2021 14:48:42:
Nee, ik doe niks met tekencodering of zo.

Dat doe je wel, ook al heb je het niet in de gaten.
Zowel het PHP script werkt vanuit een bepaalde codering, en het bestandssysteem heeft een codering. PHP werkt standaard met Unicode UTF-8 sinds PHP versie 5.6, en het bestandssysteem.. eh... ja dat hangt er van af welk bestandssysteem je gebruikt.

In principe is de codering van PHP en het bestandssysteem bekend bij de aanroep van rename(), dus zou het geen probleem moeten geven. Te meer omdat vanuit de NAS alles er goed uitziet.

Eerst maar eens kijken naar de suggesties van Thom, misschien dat daar de oplossing tussen zit.
Gewijzigd op 08/04/2021 16:08:55 door Ad Fundum
 
Ivo P

Ivo P

08/04/2021 16:21:46
Quote Anchor link
probeer het ook eens met een filename die voldoet aan de oude standaard voor filenames: 8 + 3

dus iets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $filenameNEW);"Test.pdf"; ?>
 
Ozzie PHP

Ozzie PHP

08/04/2021 18:05:26
Quote Anchor link
Ivo P op 08/04/2021 16:21:46:
dus iets als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $filenameNEW);"Test.pdf"; ?>

That won't work :-)

Zoiets bedoelt Ivo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$a
="ABC_01.pdf";
$b="Test.pdf";
rename ($a,$b);
?>
 
Andre Janssen

Andre Janssen

08/04/2021 22:26:25
Quote Anchor link
Hoi,
ik heb nog niet al jullie suggesties gelezen maar jullie voorbeelden werken allemaal!
Ook 8+3 of 11+3 enz

even een bestandje maken en renamen werkt goed.
wat niet werkt zijn de originele bestanden die ik met php rename:

die zien er op de NAS na rename goed uit maar bekeken met de Windows-verkenner niet; er zit dan steeds een tilde en een hoofdletter als laatste in de verkeerde hernoemde naam gevolgd door de juiste extensie.
Dus bijv. 12345678_90.pdf wordt bijv TR4198~X.pdf
De hernoemde naam bevat weliswaar 8 karakters maar is onherkenbaar geworden.
Ik zie er nog geen enkele logica in en ga er eens een nachtje over slapen.......
Iemand nog een idee??
 
Ozzie PHP

Ozzie PHP

08/04/2021 23:54:37
 
Thom nvt

Thom nvt

09/04/2021 07:51:08
Quote Anchor link
Link dan even naar de échte Wikipedia i.p.v. zo'n met spam- en trackingcookies overladen ripoff: https://en.wikipedia.org/wiki/8.3_filename

Ik denk toch nog steeds dat het zit in de koppeling naar de NAS, Synology apparaten i.c.m. Windows hebben vaker ruzie met het SMB protocol.
 
Ad Fundum

Ad Fundum

09/04/2021 08:51:02
Quote Anchor link
Andre Janssen op 08/04/2021 22:26:25:
Iemand nog een idee??

Wat je eigenlijk zegt is dat je met de Windows Verkenner bestandsnamen op de NAS (is het Synology?) ziet in DOS 8.3-formaat, dat is een subformaat van de lange bestandsnamen die zijn geïntroduceerd met Windows 95. Één van de twee systemen schakelt daar naar over.

Zie je in de terminal op de NAS wel de nieuwe namen goed? Dan ligt het niet aan PHP.
Je kunt SSH-toegang aanzetten in DSM onder Configuratiescherm -> Terminal en SNMP -> SSH Service inschakleen. Daarna log je in op de NAS (via Putty o.i.d.) met "admin" en het wachtwoord, eventueel daarna "sudo su" met wachtwoord en je kijkt in de map "ls -l /mapnaam | more" om te zien of het allemaal klopt.

Klopt het op de NAS, maar laat de Windows Verkenner nog steeds troep zien? Controleer je instellingen dubbel: met welk protocol en versie wordt er verbinding gemaakt met de NAS?
Je kunt dit controleren onder Configuratiescherm -> Bestandsservices. Onder SMB/AFS/NFS kan je Samba, niet AFS want Apple, of NFS instellen. Met de knop Geavanceerd kan je ook de versie van het protocol beheren (Samba versie 1 wordt niet meer door Windows ondersteund).
Als het via het ene protocol niet werkt, kijk dan of het wel werkt met een ander protocol. In het ergste geval kan je via FTP/FTPS kijken, dat klopt altijd, tenzij je in de verkeerde map op de NAS zit.

Overigens zijn er ook andere manieren om op de NAS te browsen vanuit Windows. Vanuit je browser, via DSM ga je naar Start -> File Station om met je bestanden op Windows te werken.
Gewijzigd op 09/04/2021 08:51:56 door Ad Fundum
 

Pagina: 1 2 3 volgende »



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.