Gå til innhold

Endre navn på fil ved fileupload


Anbefalte innlegg

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

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

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

Lenke til kommentar
Gjest Slettet-rXRozPkg

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

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

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

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å
  • Hvem er aktive   0 medlemmer

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