webForumDet fria alternativet

input file > filformat?

HTML & CSSur HTML, XHTML & CSS

8 svar · 284 visningar · startad av roady

Medlem sedan jan. 2002473 inlägg
Frågan#1

Jag har gjort en helt vanlig filuppladdnings-objekt...

<input type="file" name="file">
Men jag tänkte kan man få den att förstå att jag enbart vill ha bildfiler. Så man slipper välja själv i rutan som dyker upp för att man enbart skall se bildfilerna...

alltså, det blev luddigt, men tror ni förstår!

Medlem sedan nov. 200013 890 inlägg
#2

Det går inte med HTML i alla fall.

Medlem sedan jan. 2002473 inlägg
#3

hmm.. Kan man göra det med Javascript då???

kan någon flytta över tråden?

Mvh

Medlem sedan sep. 20001 124 inlägg
#4

Tror inte det är möjligt heller, faktiskt. Det vore trevligt om man kunde ange ett gäng MIME-typer som accepterades, men så är inte fallet.

Medlem sedan aug. 2002477 inlägg
#5

Det finns i HTMl sedan version 4 - men det stöds inte av de stora webbläsarna ännu:
<input type="file" name="bild" accept="image/jpeg, image/gif" />
alt.
<input type="file" name="bild" accept="image/*" />

Medlem sedan dec. 200049 inlägg
#6

Du kan ju alltid göra så här:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>X-tension-tester</title>
    <script language="JavaScript" type="text/javascript">
    //by DmS at [url]http://www.dmsproject.com/[/url]
    function checkIt(){
    //picks the complete path for the file to be uploadend
    var file = document.forms["uploader"].upFile.value;
    alert(file);
    //checks if the string ends with ".zip"
    regX = new RegExp(".zip$");
        //if it's true submit the form and upload,
        // otherwise prompt with good message ;-)
        if(regX.test(file)){
        alert("zippwedido... uploading...");
        return true;
        }else{
        alert("nope, only .zip files...");
        return false;
        }
    }

    
    </script>
</head>

<body>
<form action="#" enctype="multipart/form-data" name="uploader" id="uploader" onsubmit="return checkIt()">
<input type="file" name="upFile">
<input type="submit" name="submit" value="submit"">
</form>

</body>
</html>

Den här kollar filändelsen om det är .zip
//checks if the string ends with ".zip"
regX = new RegExp(".zip$");
//if it's true submit the form and upload,
// otherwise prompt with good message ;-)
if(regX.test(file)){
...
ändra regX = new RegExp(".zip$"); till regX = new RegExp(".jpg$"); för jpeg filer, till ".gif$" för gif-filer och så vidare

Vill du kolla flera olika format så kan du göra flera regX och testa mot (eller en mer avancerad test som jag inte kan...)

Observera att detta INTE validerar att det verkligen är en äkta bildfil som kommer, det måste du göra på serversidan med t ex php som kan läsa mime-typen.
/Dan

Medlem sedan aug. 2002477 inlägg
#7

DmS - jag tror att du missade vad roady var ute efter - han ville att när du ska välja filer så ska bara de filer synas som man har bestämt.
Att man kan kolla vad det är för fil som man vill ladda upp är en annan femma - och det finns det många lösningar på.

Medlem sedan jan. 2002473 inlägg
#8

tackar för era svar... Få helt enkelt bara lägga in det som mikkeX skrev och hoppas att framtiden tar upp det i sina händer ;)

Medlem sedan dec. 200049 inlägg
#9

Ah, så går det när man läser snabbt... ;)

För att lösa det i dagsläget så får man nog hänvisas till en serversideslösning, jag har gjort det i php tidigare.

Huvudproblemet med en javascript/html-lösning oavsett om mime-accepten kommer eller inte blir nog att man inte kan/får sätta egna värden via javascript i en input type="file" av säkerhetsskäl. Sen har du nästa bit, att den sök-fil-rutan som kommer upp inte är en del av browsern/sidan, den kommer direkt från operativsystemet.

Möjligt att man kan lösa det med vb-script, men då öppnar man en hel del potentiella säkerhetshål
/Dan

137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
130 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)