[PHP] Rename bestand, Windows omgeving

Pagina: 1
Acties:
  • 125 views sinds 30-01-2008
  • Reageer

Onderwerpen


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Heeft iemand enig idee hoe je een file die op een netwerk share staat kan renamen met php? Is dit alleen mogelijk als de files op dezelfde server staan of maakt dit niet uit?

Ik weet niet helemaal zeker hoe ik het pad op moet geven in het rename commando:

PHP:
1
rename("P:\map\test.usr", "P:\map\test-backup.usr");


Iemand hier ervaring mee?

  • Nielsvr
  • Registratie: Maart 2004
  • Laatst online: 27-08 14:55
PHP:
1
rename("P:\\map\\test.usr", "P:\\map\\test-backup.usr");


En volgens mij moet het via een netwerkshare wel kunnen. Je moet dus wel dubbele slashes gebruiken (escapen). Anders wordt het gelezen als P:maptest.usr, en dat klopt dus niet.

[ Voor 15% gewijzigd door Nielsvr op 19-09-2007 12:25 ]


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
De prachtige (o zo duidelijke) fout melding (no error :S):

code:
1
Warning: rename(P:\map\test.usr,P:\map\test-backup.usr) [function.rename]: No error in C:\xampp\htdocs\beheer\find.php on line 2

Verwijderd

Zou dit ook niet met een rechtenprobleem te maken kunnen hebben?

  • sc0rpz
  • Registratie: November 2003
  • Laatst online: 23-09-2021
ik dacht dat php (op windows met xampp) alleen kan renamen binnen de virtual directory die je in httpd.conf hebt aangegeven. standaard xampp/htdocs. Dus dan zou je die networkshare daar bij hebben moeten zitten. Is dat zo?

Kan zijn dat deze info niet klopt, maar dat horen we dan snel genoeg

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Dan zou je wel een open_basedir restriction error krijgen.

Je kunt overigens gewoon UNC paden gebruiken (\\servernaam\share\file)

Test eerst eens met is_file() of je het bestand uberhaupt kunt benaderen, en met is_writeable() of je hem ook kunt bewerken?

  • kunnen
  • Registratie: Februari 2004
  • Niet online
Moet je niet toevallig relatieve paden gebruiken? Probeer anders eens move() ipv rename? Of copy & delete, werkt dat?

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Als ik bijvoorbeeld:

PHP:
1
if(is_file("P:\map\test.usr")) echo 'file exists';


Of

PHP:
1
if(is_file("\\servername\p$\map\test.usr")) echo 'file exists';


doe dan krijg ik in beide gevallen geen respons. Ik zal eens proberen of het werkt met een file die ik binnen de server root zet en vervolgens er buiten.

Ik kan nog even kijken in de config file of ik soms andere paden op kan nemen die apache mag benaderen...

  • user109731
  • Registratie: Maart 2004
  • Niet online
Let erop dat je hier weer een enkele slash gebruikt, dit moeten er 2 zijn. Of je gebruikt enkele quotes, dan kan het wel zo.

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Hmm ik denk dat ik inderdaad paden moet opgeven in de config van apache.

Ik weet niet zeker waar het moet (en of het kan) maar ik zal de config eens doorspitten..
Pagina: 1