Gå til innhold

Flytte en fil med PHP


Anbefalte innlegg

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
Lenke til kommentar
Videoannonse
Annonse

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 2
Lenke til kommentar

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..

Lenke til kommentar

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 :)

Lenke til kommentar

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
  • Liker 1
Lenke til kommentar

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
Lenke til kommentar

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å
×
×
  • Opprett ny...