[php]bestandnaam veranderd

Pagina: 1
Acties:
  • 60 views sinds 30-01-2008

  • arnem_
  • Registratie: Mei 2000
  • Laatst online: 05-09 15:30
Ik heb dit script:
PHP:
1
<?$besta = substr("$bestand", 4);if (is_uploaded_file($bestand)) {move_uploaded_file($bestand, *********real/$path$besta"); echo "Bestand '$bestand_name' met de grootte: $bestand_size bytes is succesvol geupload!";echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=../adm/upload.php?in=$in' target='_self'>";exit;}else {echo '<form method="post" enctype="multipart/form-data"><input type="file" name="bestand"><br><br><input type="hidden" name="in" value="clar"> <input type="submit" value="Verzenden" name="submit"></form>';}?>

Het probleem is dat bij het kopiëren vanuit de /temp directory naar de directory waarin ik het wil hebben de naam van het bestand wordt veranderd.

De betsandsnaam komt er ongeveer zo uit te zien:
van listen.pls -> phpTYJSvB

Misschien is dit een beginners vraag maar ik heb gezocht in de search en op php.net en ik kom er niet uit.

  • Erik Jan
  • Registratie: Juni 1999
  • Niet online

Erik Jan

Langzaam en zeker

Er klopt iets niet aan de grammatica van deze regel:
code:
1
{move_uploaded_file($bestand, *********real/$path$besta");

Krijg je geen parse-error als je het zo gebruikt?

This can no longer be ignored.


  • arnem_
  • Registratie: Mei 2000
  • Laatst online: 05-09 15:30
Dat heb ik nu even expres gedaan. Niet iedereen hoeft die regel te zien. Zwaar overdreven natuurlijk maar dat heb ik nu eenmaal zo gedaan.

Het bestand komt wel aan in de goede directory maar krijgt dan de verkeerde naam en dus een andere naam als dat ik het bestand heb verstuurd.

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
PHP:
1
<?$besta = substr($bestand, 4);if (is_uploaded_file($bestand)) {    move_uploaded_file($bestand, "rarareal/$path$besta");    echo "Bestand '$bestand_name' met de grootte: $bestand_size bytes is succesvol geupload!";    echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=../adm/upload.php?in=$in' target='_self'>";    exit;} else {echo <<<DOC<form method="post" enctype="multipart/form-data">    <input type="file" name="bestand"><br><br>    <input type="hidden" name="in" value="clar">    <input type="submit" value="Verzenden" name="submit"></form>DOC;}?>


PHP:
1
<?$besta = substr($bestand, 4);?>

Volgens mij klopt dit niet, als $bestand gelijk is aan "listen.pls" dan wordt $besta "en.pls".

Wat is $path, en waar komt $bestand_name opeens vandaan?

Verwijderd

PHP:
1
<?$besta = substr($bestand, 4);?>

moet vast:
PHP:
1
<?$besta = substr($bestand_name, 4);?>

ofniet?

  • Baxlash
  • Registratie: Juni 2000
  • Niet online

Baxlash

Its a boy Genius!

Op zondag 31 maart 2002 23:14 schreef zellufs het volgende:
PHP:
1
<?$besta = substr($bestand, 4);?>

moet vast:
PHP:
1
<?$besta = substr($bestand_name, 4);?>

ofniet?
nee
substr($bestand, 4); moet substr($bestand, -4); worden. Dan pakt hij de laatste 4 van de bestandnaam (en in dit geval dus de extentie.)

edit:
Niet 100% goed gelezen.

Verwijderd

dan heb je niet de extensie hoor, $bestand is de inhoud van het bestand en $bestand_name is de naam...

owja, en hoe kom je aan $path (nog maar eens vragen dan)

  • arnem_
  • Registratie: Mei 2000
  • Laatst online: 05-09 15:30
Ik zal het iets duidelijker proberen te maken.
PHP:
1
<?$besta = substr("$bestand_naam", 4);if (is_uploaded_file($bestand)) {move_uploaded_file($bestand, map/real/clar$besta"); echo "Bestand '$bestand_name' met de grootte: $bestand_size bytes is succesvol geupload!";echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=../adm/upload.php?in=$in' target='_self'>";exit;}else{echo '<form method="post" enctype="multipart/formdata"><input type="file" name="bestand"><br><br><input type="hidden" name="in" value="clar"><input type="submit" value="Verzenden" name="submit"></form>';}?>

$besta = substr("$bestand_naam", 4);
moet omdat de bestanden tijdelijk worden opgeslagen in de map /temp.
Je zou dan krijgen /temp$besta.
Dus $bestand_naam = /temp$besta.
Nu wil ik de eerste 4 tekens weg halen zodat ik alleen /playlist.pls krijg i.p.v /temp/playlist.pls.

$path was trouwens een variable omdat er in de map real vier submappen zijn en de betsanden moeten dus in één van de vier mappen terecht komen. Dit is niet het hele script maar dit deel werkt wel dus niet echt van belang voor mijn vraag. Moet volgende keer maar eens wat simpeler mijn probleem voorleggen.

Nogmaals, het bestand komt in de goede directory alleen krijgt het een andere naam.

  • Tim
  • Registratie: Mei 2000
  • Laatst online: 23-07 15:18

Tim

maar zoals je misschien wel door hebt staat er

$besta = substr("$bestand", 4);

en niet

$besta = substr("$bestand_name", 4);

:)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09-09 20:58

Janoz

Moderator Devschuur®

!litemod

We gaan hier niet een oplossing verzinnen voor een probleem dat je zelf gecreëerd hebt. Lees nog eens goed naar de antwoorden, en nog beter naar je eigen echo (die je vlak na het uploaden geeft)..

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'

Pagina: 1

Dit topic is gesloten.