Gå til innhold

Endre navn på fil ved fileupload


Anbefalte innlegg

Skrevet

Hei

 

Har et veldig enkelt upload-script her hvor jeg vil gjøre om litt på navnet til filene som lastes opp. Hvor, og hvordan, skal jeg putte inn mitt eget navn?

 

$target_path = "bilder/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 

Videoannonse
Annonse
Skrevet (endret)
Hei

 

Har et veldig enkelt upload-script her hvor jeg vil gjøre om litt på navnet til filene som lastes opp. Hvor, og hvordan, skal jeg putte inn mitt eget navn?

 

$target_path = "bilder/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))

7255078[/snapback]

Den uthevede skriften der kan f.eks. endres til 'minfil.txt' (merk at fnuttene skal være med)

Endret av Nazgul
Skrevet (endret)

PHP
<?php

$target_path "bilder/";

$target_path $target_path $_POST['eget_navn'] . substr($_FILES['uploadedfile']['name'], -4);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))

?>

Også lager du en ekstra <input> som du kaller name='eget_navn'.

<form blabla...>
...
<input type="text" name="eget_navn">
...
</form>

Edit: Den her legger til filendelse fra originalfilen. Hvis du vil bestemme filendelse selv er det bare til å ta vekk: '. substr($_FILES['uploadedfile']['name'], -4)'

Endret av endrebjorsvik
Skrevet
PHP
<?php

$target_path = "bilder/";

$target_path = $target_path . $_POST['eget_navn'] . substr($_FILES['uploadedfile']['name'], -4);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))

?>

Også lager du en ekstra <input> som du kaller name='eget_navn'.

<form blabla...>
...
<input type="text" name="eget_navn">
...
</form>

Edit: Den her legger til filendelse fra originalfilen. Hvis du vil bestemme filendelse selv er det bare til å ta vekk: '. substr($_FILES['uploadedfile']['name'], -4)'

7255172[/snapback]

Grøss og gru. Hardkoding av verdier i en slik sammenheng er ikke noe jeg er særlig fan av. Det er ikke slik at en filendelse være 3tegn. jpeg og mpeg er gode eksempler på akkurat det. Derfor blir det etter min mening ganske hårete å hardkode inn på den måten. En løsning ala substr(filnavn, strrpos(filnavn, '.')) mye bedre.

Gjest Slettet-rXRozPkg
Skrevet (endret)

Men bare litt, for man kan jo også ha punktum i filnavnet (eller ikke ha noen filendelse i det hele tatt), hvor mange virus blir ikke sendt på mail som "sepådettebildet.jpg.exe" eller tilsvarende, og strpos treffer jo på det første første tegnet av det den søker etter.

Endret av Slettet-rXRozPkg
Skrevet
Men bare litt, for man kan jo også ha punktum i filnavnet (eller ikke ha noen filendelse i det hele tatt), hvor mange virus blir ikke sendt på mail som "sepådettebildet.jpg.exe" eller tilsvarende, og strpos treffer jo på det første første tegnet av det den søker etter.

7259476[/snapback]

Hvis du leser litt nøye bruker jeg strRpos, altså finner jeg siste punktum. Hvis man samtidig sjekker at retur-verdi ikke er false veit man i tillegg at det faktisk er et punktum der. Med andre ord, med litt smart koding skal det endel til før man er på bærtur ;)

Skrevet
Men bare litt, for man kan jo også ha punktum i filnavnet (eller ikke ha noen filendelse i det hele tatt), hvor mange virus blir ikke sendt på mail som "sepådettebildet.jpg.exe" eller tilsvarende, og strpos treffer jo på det første første tegnet av det den søker etter.

7259476[/snapback]

 

Ernie linka nå til en reversert funksjon. Den finner den siste ;)

Skrevet (endret)
Men skal vi først være nøyaktige med filendelsene, så trengs det to punktum til .tar.gz og .tar.bz(2). Da er vi like langt. ;)

7260808[/snapback]

nei, tar.gz er en gzipped fil, altså et arkiv, som i dette tilfellet inneholder et tar-arkiv.

Om jeg kaller filen min exe.txt.zip så er fortsatt bare filen min et zippet arkiv, med noe i.

 

Og uansett hvordan du vrir og vender på det, så er det et poeng å ikke hardkode størrelser.

Endret av Nazgul
Skrevet
Og uansett hvordan du vrir og vender på det, så er det et poeng å ikke hardkode størrelser.

7260893[/snapback]

Jeg prøvde ikke å forsvare min metode (jeg vet at den er stygg, men det var det eneste jeg kom på), men jeg ville se en måte man kunne løse det enda bedre på.

Selv om det bare er en GZipped fil, trenger vi i allikevel å vite at det er et .tar-arkiv.

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