Avatar billede -jesper- Nybegynder
10. juni 2001 - 15:47 Der er 11 kommentarer og
1 løsning

Fil-upload - begrænse fil-typer?

Hejsa...

Jeg har et lille problem som jeg håber nogen kan være behjælpelige med.

Jeg er ved at lave en fil-upload form hvor jeg ønsker at der kun kan uploades billeder (f.eks. gif/jpg etc.).

Jeg har fundet ud af, at jeg kan lave et tjek på image\\XXX om den er gif eller whatever efter den er blevet \'submittet\' - men jeg synes at kunne erindre en gang jeg var inde på en side - hvor, når jeg gennemså min egen maskine (Windows), jeg kun kunne vælge 2 filtyper (gif/jpg) - intet andet... Hvordan gør man det??? Eller husker jeg forkert ;o)   

Jeg prøvede at snakke med nogen i PHP-sektionen men det lader til at være ren HTML jeg skal ud i...

<input type=\"file\" name=\"userfile\" accept=\"Pictures\">   

Jeg har prøvet følgende:

<form method=\"post\" enctype=\"multipart/form-data\" accept=\"image/gif,image/jpeg,image/jpg\" action=\"<? php_self ?>\">
Filnavn: <input type=\"file\" name=\"userfile\" accept=\"image/gif,image/jpeg,image/jpg\"><input type=\"submit\">
</form>

Prøv selv ovenstående... Jeg har sat det ind i begge bare for at prøve. Hos mig når jeg klikker på Browse - kan jeg i dropdown-boksen vælge mellem \"All files\", \"Pictures ......\" og \"HTML ...\" - Men jeg kan ikke få den til at kun acceptere Pictures som mulighed...   

Er der nogen der kan hjælpe mig så brugeren kun kan vælge billed-filer? :o)
Avatar billede Slettet bruger
10. juni 2001 - 15:52 #1
Har selv følgende kode:

$registered_types = array(
                    \"application/x-gzip-compressed\"     => \".tar.gz, .tgz\",
                    \"application/x-zip-compressed\"         => \".zip\",
                    \"application/x-tar\"                    => \".tar\",
                    \"text/plain\"                        => \".html, .php, .txt, .inc (etc)\",
                    \"image/bmp\"                         => \".bmp, .ico\",
                    \"image/gif\"                         => \".gif\",
                    \"image/pjpeg\"                        => \".jpg, .jpeg, .JPG, .JPEG\",
                    \"image/jpeg\"                        => \".jpg, .jpeg, .JPG, .JPEG\",
                    \"application/x-shockwave-flash\"     => \".swf\",
                    \"application/msword\"                => \".doc\",
                    \"application/vnd.ms-excel\"            => \".xls\",
                    \"application/octet-stream\"            => \".exe, .fla (etc)\"
                    ); # these are only a few examples, you can find many more!

$allowed_types = array(\"image/bmp\",\"image/gif\",\"image/pjpeg\",\"image/jpeg\");

        if (!in_array($the_file_type,$allowed_types)) {
            $error .= \"\\n<li>Filen du valgte var af en type der desværre ikke kan bruges. De eneste filtyper der kan anvendes er:\\n<ul>\"; }
Avatar billede crunch Nybegynder
10. juni 2001 - 15:53 #2
jeg tror du skal gøre det på serveren. Altså brug ASP, PHP, JSP eller whatever til at tjekke endelsen inden du gemmer filen.:

jeg fandt lige denne her beskrivelse på Azero.dk´s hjemmeside, hvis du bruger ASP.

ASPupload
ASPupload er en måde man kan gøre det muligt for brugere at \"uploade\" eller sende, filer til ens webhotel/server.

Husk at når du giver en bruger mulighed for at uploade til dit webhotel, kan han uploade kode der giver ham de samme muligheder du som administrator har hvis han kan browse filen bagefter. Det anbefales derfor på det kraftigste at du kun giver mulighed for at uploade til /db folderen, da den ikke er synlig via internettet.

Skal du uploade til en folder der umiddelbart kan browses via internettet, er det derfor vigtigt at du checker på endelsen og f.eks. kun tillader filer der ender på .jpg eller .gif. En bedre løsning er at lade brugere uploade til /db folderen, og derefter bruge programmeringskode til at flytte filen hen et sted hvor den må ligge, samtidig med at du checker endelsen.

En formular der kan bruges til at sende filer til AspUpload med:
<html>
<body>

<form method=\"post\" enctype=\"multipart/form-data\" action=\"uploaded.asp\">
  <input type=file name=\"file1\"><br>
  <input type=file name=\"file2\"><br>
  <input type=file name=\"file3\"><br>
  <input type=submit value=\"upload!\">
</form>

</body>
</html>
Kode der modtager de filer brugerne sender og gemmer dem på serveren:
<html>
<body>
<%
  Set Upload = Server.CreateObject(\"Persits.Upload.1\")
  Count = Upload.Save(\"d:\\home\\FtpBrugerNavn\\db\\upload\")
  Response.Write Count & \" fil(er) modtaget.\"
%>
</body>
</html>
Avatar billede Slettet bruger
10. juni 2001 - 15:53 #3
Der mangler lige lidt til sidst:

            while ($type = current($allowed_types)) {
                $error .= \"\\n<li>\" . $registered_types[$type] . \" (\" . $type . \")</li>\";
                next($allowed_types);
            }
Avatar billede Slettet bruger
10. juni 2001 - 15:54 #4
I min kode er variablen $the_file_type den fil som brugeren vælger..
Avatar billede -jesper- Nybegynder
10. juni 2001 - 15:59 #5
Men nu er det i selve det vindue som dukker op når du sidder og bladrer filer/biblioteker igennem. Der har jeg set engang at man kun kunne vælge billeder..

Så jeg ville godt kunne lave et tjek på filen i PHP ved at tjekke dens MIMETYPE - Men jeg søger efter når du trykker på \"Gennemse\"-knappen at du simpelthen kun kan vælge billeder.
Avatar billede Slettet bruger
10. juni 2001 - 16:33 #6
Når jeg bruger min form kan jeg kun vælge gif og jpg billeder......
Avatar billede -jesper- Nybegynder
10. juni 2001 - 19:41 #7
Men det er efter du har valgt hvilken fil du vil uploade, ik\'? Det skal være når man vælger filen at man kun kan se gif og jpg-filer.
Avatar billede Slettet bruger
10. juni 2001 - 20:15 #8
Nej, det er når man vælger den...
Avatar billede -jesper- Nybegynder
11. juni 2001 - 10:38 #9
OK :o).. Du kunne vel ikke lokkes til at maile mig et link til din upload og/eller hele filen (bare for at få lidt overblik over den) ???... Jeg krydser fingre - min adr. er jdn@worldonline.dk - På forhånd 1000 tak for hjælpen..
Avatar billede Slettet bruger
11. juni 2001 - 14:11 #10
DU får nok ikke overblik over den...den er temmelig speciel til netop mit formål...

Desunde lagde jeg lige mærke til at man i min kan vælge *.*...altså alle filer.

Så jeg ved det desværre ikke...
Avatar billede Slettet bruger
27. november 2002 - 09:34 #11
jamen dog en gammel fætter...

Lukker du?
Avatar billede -jesper- Nybegynder
29. juni 2003 - 21:15 #12
Ups! Den havde jeg helt glemt - jeg fik aldrig løst problemet men den gang var der en ven som fortalte mig at det vist var en implementeringsfejl i MS-IE. Jeg lukker igen - tak til alle for hjælpen! :)
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