Gå til innhold

Flytte en fil med PHP


Anbefalte innlegg

Skrevet (endret)

Hei igjen! Jeg lurer denne gangen på hvordan man kan flytte en fil med PHP. Jeg er klar over at man kan bruke en form for flytte funksjon, men problemet mitt er at jeg ønsker en form som du kan skrive inn det nye "pathen". Jeg er helt på bærtur, men har selve ideen i hodet.

 

Har prøvd med noe så enkelt som dette, men har da ikke fått til selve funksjonen.

<form action="lastopp/opplastninger/flytt.php?file=
<?php
if(isset($_GET['file'])){ 
$file = $_GET['file'];
echo "$file";
}
?>" method="post">
Flytt filen til: <input name="filny" type="text" value="" />
<input type="submit" />
</form>

 

EDIT: Ser at jeg har lagt inn helt feil kode her, men har noen et forslag til en PHP funksjon jeg kan bruke til å endre plasseringen? Jeg har allerede en link som dere kanskje ser, med ?file som endelse. Et eksempel: http://mittdomene.no?file=tekst.txt og jeg ønsker å endret navnet på denne filen til hei.txt ved hjelp av en input boks.

Endret av Rigo
Videoannonse
Annonse
Skrevet (endret)

bruk rename() funksjonen og sett inn stien du las inn.

 

e.g

<?php
rename("/tmp/tmp_file.txt", "/home/user/login/docs/my_file.txt");
?>

 

http://www.php.net/manual/en/function.rename.php

 

 

~edit, funksjonen overskrive eksisterende filer så det kan være lurt å lange en funksjon som kontrollere dette før det blir utført (om det er en aktuell problemstilling)

Endret av MisterIT
  • Liker 1
Skrevet

Hvordan kan jeg forhindre overskriving av eksisterende filer? Pluss, er det mulig å låse den til en spesifikk mappe så brukere ikke kan flytte en index.php fil de selv har laget til der min ligger? Virker som om det er veldig lett å missbruke denne funksjonen..

Skrevet

Hvordan kan jeg forhindre overskriving av eksisterende filer? Pluss, er det mulig å låse den til en spesifikk mappe så brukere ikke kan flytte en index.php fil de selv har laget til der min ligger? Virker som om det er veldig lett å missbruke denne funksjonen..

 

Du kan bruke file_exists() for å sjekke om filen finnes fra før :)

Skrevet

Takk, men er det mulig å "låse" fast flyttingen til et bestemt mappe område så folk ikke kan tukle med hele webserveren min?

Skrevet

Takk, men er det mulig å "låse" fast flyttingen til et bestemt mappe område så folk ikke kan tukle med hele webserveren min?

 

Ja, det kan du jo skrive direkte i koden din. Hvilken mappe som skal skrives til. Example #1 så ser du et eksempel ;)

Skrevet (endret)

Det gjøres slik:

//Sikkerhet, ikke tillat: "..", "/", "\" samt andre tegn som ikke tillates i filnavn.
//Er til for å unngå at de skal bladre seg bakover: "../"

$myfile = "haha.txt";
rename("/tmp/{$myfile}", "/home/user/login/docs/{$myfile}");

 

Du kan vel bruke preg_match() for å spore om filene inneholder ulovlige tegn.

 

Er heller ikke dumt å begrense hvilke filtyper som blir lastet opp.

Endret av warpie
Skrevet

Selvfølgelig, tenker ikke alltids like klart. Tusen takk igjen! Føler jeg holder liv i PHP delen av forumet.

  • Liker 1
Skrevet (endret)

For all del spør i vei. Men søk også litt selv. Etter litt så får du en samling av kode, som du selv kan bruke som refereanse/hjelp.

*host.. hark: (+1)-tasten er til for å brukes* - Det hjelper andre til å se hva som var nyttige svar.

Endret av warpie

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...