Avatar billede dennism Nybegynder
10. februar 2003 - 16:44 Der er 20 kommentarer og
2 løsninger

PHP - filetype()

Jeg har disse funktioner:

$type = filetype('$_POST[billedfil]');
echo "$type";

$_POST[bileldfil] indeholder følgende:
d:\\billeder\\test.png

Men alligevel er værdien af "$type" bare "file".. Hvorfor?
Avatar billede htm Nybegynder
10. februar 2003 - 16:55 #1
Prøv:

$type = filetype('$_FILES[billedfil]');
echo "$type";

I stedet
Avatar billede miraculix Nybegynder
10. februar 2003 - 17:01 #2
Fordi det er det du beder den om når du skriver filetype('$_POST[billedfil]');

Filetype returnerer nemlig filtypen. (fifo, char, dir, block, link, file, eller unknown. )

Hvad ville du bruge filetype() til?
Avatar billede dennism Nybegynder
10. februar 2003 - 17:02 #3
miraculix >>

Jeg vil f.eks. gerne have:
.jpg, .png, .gif osv.!
Hvordan kan jeg gøre det?
Avatar billede htm Nybegynder
10. februar 2003 - 17:03 #4
$type = $_FILES['billedfil']['type'];
echo "$type;
Avatar billede dennism Nybegynder
10. februar 2003 - 17:06 #5
htm >>

Den retunerer intet...
Skal jeg ik vise at det kommer fra en $_POST?
Avatar billede htm Nybegynder
10. februar 2003 - 17:11 #6
Nej filer ligger i arrayer $_FILES

Dette virker fint for mig

echo $_FILES['fil']['type'];

Returnerer eks. text/plain for en txt-fil
Avatar billede dennism Nybegynder
10. februar 2003 - 17:14 #7
Det er ikke min form den er gal' med, vel:
<FORM class=\"inlineform\" METHOD=post ACTION=\"$_SERVER[REQUEST_URI]\" enctype=\"multipart/form-data\">

??
Avatar billede miraculix Nybegynder
10. februar 2003 - 17:27 #8
Den ser ok ud.

og du bruger <input type="file" ?

$_FILES['billedfil']['type'];

returnerer mime-typen f.eks. image/gif image/jpeg el. lign.
Avatar billede dennism Nybegynder
10. februar 2003 - 17:29 #9
Efter at jeg har ændret form'en til "enctype=\"multipart/form-data\">" så ligger navnet på filen (+sti) ikke i $_POST[billedfil] mere!.. Hvorfor?
Og hvor kan jeg finde den nu?
Avatar billede miraculix Nybegynder
10. februar 2003 - 17:29 #10
Det $_FILES[][type] den indeholder bestemmes af browseren typisk udfra fil-extension (i windows, på mac er der et andet system til at håndtere filtyper så vidt jeg husker).

Så du kan jo evt. klippe de sidste 4 tegn ud af filnavnet.
Avatar billede miraculix Nybegynder
10. februar 2003 - 17:32 #11
i $_FILES['billedfil']['name']

Læs lidt om file-upload her:

http://www.php.net/manual/en/features.file-upload.php
Avatar billede dennism Nybegynder
10. februar 2003 - 17:32 #12
type indeholder f.eks.: image/gif!

Så nej, den kan jeg ikke bruge!
Avatar billede dennism Nybegynder
10. februar 2003 - 17:33 #13
miraculix >>

Den indeholder bare filnavnet!.. Stien er ikke med, og derfor kan jeg ikke uploade!
Avatar billede dennism Nybegynder
10. februar 2003 - 17:36 #14
Jeg har lige smidt lidt flere point i!..
Avatar billede htm Nybegynder
10. februar 2003 - 17:37 #15
dennism>> Hvilken kode kan du ikke få til at virke???

$_FILES['filnavn']['type'] Indeholder filtypen
$_FILES['filnavn']]'name'] indeholder det oprindelige navn på filen
$_FILES['filnavn']['tmp_name'] indeholder selve filen, midlertidigt gemt på serveren
Avatar billede dennism Nybegynder
10. februar 2003 - 17:39 #16
htm >>

Det der er problemet lige pt. er at jeg skal have hele stien på filnavnet (f.eks.: d:\\billeder\\test.png).. Ellers kan jeg jo ikke uploade billedet!...
Avatar billede dennism Nybegynder
10. februar 2003 - 17:40 #17
Og.. Så kan i lige se in form igen:

echo"<div align=\"center\"><FORM enctype=\"multipart/form-data\" class=\"inlineform\" METHOD=post ACTION=\"$_SERVER[REQUEST_URI]\">
<INPUT TYPE=\"hidden\" VALUE=\"tilfoj\" NAME=\"action_nyhed\">
Overskrift:<INPUT TYPE=text name=titel class=but size=25 value=\"$_POST[titel]\"><br>
Billed-fil:<input class=but type=\"file\" name=\"billedfil\" size=\"25\"><br>
<TEXTAREA class=but name=tekst ROWS=\"15\" COLS=\"50\">$_POST[tekst]</TEXTAREA><br>
<INPUT type=submit VALUE=\"Opret nyhed\" class=button></form></div><br>";

Derefter kører jeg:
$type = $_FILES['billedfil']['type'];
Men $type er bare tom.. Den retunerer ikke noget :(
Avatar billede htm Nybegynder
10. februar 2003 - 17:44 #18
Og du vil have hele stien? Til hvad formål?

Eks. på mit uploadscript:

if (move_uploaded_file($_FILES['fil'][tmp_name], "/upload".$_FILES['fil']['name']) or die("Filen kan ikke uploades prøv igen!")) {
            Echo "Alt OK<br>";
}

Hvad er det du vil?
Avatar billede dennism Nybegynder
10. februar 2003 - 17:49 #19
Hmm.. Nu virker det :D
Avatar billede htm Nybegynder
10. februar 2003 - 17:49 #20
Og hvad var din fejl så?
Avatar billede dennism Nybegynder
10. februar 2003 - 17:50 #21
Det er jeg ik helt klar over!... :)
Avatar billede miraculix Nybegynder
10. februar 2003 - 18:05 #22
Du skal huske på et det ikke er din php-kode der uploader filen, men browseren..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester