webForumDet fria alternativet

input file > filformat?

8 svar · 284 visningar · startad av roady

roadyMedlem sedan jan. 2002473 inlägg
#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!

Web-TorMedlem sedan nov. 200011 794 inlägg
#2

Det går inte med HTML i alla fall.

roadyMedlem sedan jan. 2002473 inlägg
#3

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

kan någon flytta över tråden?

Mvh

ChainsawMedlem sedan sep. 20001 282 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.

mikkeXMedlem sedan aug. 2002490 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/*" />

DmSMedlem sedan dec. 200056 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

mikkeXMedlem sedan aug. 2002490 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å.

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

DmSMedlem sedan dec. 200056 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

127 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
125 ms — hämta tråd, inlägg och bilagor (db)