Avatar billede socle Nybegynder
28. august 2003 - 13:12 Der er 6 kommentarer

access denied v. brug af fileupload.click()

Til filupload af grafik ønsker jeg at undgå at benytte den grimme grafik der følger med <input name="fu" type="file">. Jeg har derfor skjult den med css og benytter en <span onclick="[..].fu.click()">[...]</span>

Med filen valgt med mit alternativ får jeg imidlertid en 'access denied' fejl, når jeg forsøger at sende formen.
Der er ingen fejl når jeg har valgt filen med knappen i <input type="file">.

Jeg skal altså bruge en måde hvorpå jeg kan skjule filvælgeren, aktivere den via .click(), og stadig kunne submitte min form. Koden nedenfor:

<html>
<head>
<style type="text/css">
/* start : funtionsvinduer (div layers) */
    .funkwin {filter: alpha(enabled, opacity=95); position: absolute; visibility: hidden; border: solid 2px #E4E0CD; background-color: #F1EFE7; font-size:10pt; padding: 3pt; width:75%}
    .funkhead {font-weight: bold; font-size:12pt; text-align:left}
    .funkbut {padding: 2pt; border: solid 2px #EBE7DB; background-color: #FDFCF9; color: blue; cursor: hand}
    .funktoolsline {white-space: no-wrap; font-size: 8pt; border-right: solid 1px #FFFFFF; border-bottom: solid 1px #FFFFFF; border-left: solid 1px #EBE7DB; border-top: solid 1px #EBE7DB; padding: 2pt; background-color: #FDFCF9;}
    .funktxtbox {font-family: arial; font-size: 8pt; border-width: 1px; width:75%}
    .funkhelp {font-size:8pt;}
    .funkhelpbox {padding:3pt; font-size 9pt; text-align: right; white-space: nowrap}
    .funkinputtxt {font-size: 8pt; border-width: 1px}
/* slut  : funtionsvinduer (div layers) */
</style>

<script type="text/javascript">
function visImg(str){
//viser valgt billede i billede layer
        newp = new Image()
        newp.src = str
        document.selport.width = 61
        document.selport.height = 76
        document.selport.src = newp.src
        document.selport.alt = "eksempel"
        document.all.filup.value = str
        document.gfxform.fileupload.focus()
}

function cnfSubm(tform, outp){
    if(confirm("Tilføj dette til " + outp + "?"))
        document[tform].submit(this)
}


</script>
</head>

<body>
    <div id="addtogfx" class="funkwin" style="width: 280px; visibility:visible">
    <div class="funkhead">Nyt billede</div><br>
    <form id="gfxform" name="gfxform" enctype="multipart/form-data" action="flo.asp" method="post">
    <input type="file" width="60" name="fileupload" id="fileupload" onchange="visImg(this.value)" style="visibility: visible; position: relative">
    <img src="default.jpg" align="left" id="selport" name="selport" alt="nuværende billede" style="width:61px; height:76px; border: solid 1px black;">
    <span style="height: 76px; padding-left: 5pt; color: blue; cursor: pointer;" onclick="document.gfxform.fileupload.click()">vælg billedfil</span>
    <input name="action" type="hidden" value="upload">
    <input name="filup" id="filup" type="hidden" value="">
    </form>
    <span class='funkbut' onclick='cnfSubm("gfxform","dit billede")'>Opdater</span>
    </div>
</body>
</html>
Avatar billede socle Nybegynder
28. august 2003 - 13:26 #1
scriptet er udelukkende lavet til IE
Avatar billede mm12010 Nybegynder
28. august 2003 - 13:39 #2
Avatar billede grunken Nybegynder
28. august 2003 - 14:00 #3
og så læs efterfølgende

http://www.eksperten.dk/spm/386948

;)
Avatar billede socle Nybegynder
28. august 2003 - 14:29 #4
ja, mere relevant. Jeg har valgt indtil videre at style inputtet så det bliver mere acceptabelt. Men jeg er stadig på udkig efter en løsning.

Og så har jeg for resten fundet <http://www.echoecho.com/ubb/viewthread.php?tid=1081> der synes at tilbyde en løsning. Jeg kan ikke lige helt genneskue den, men hvis nogen kan konvertere den til mit formål ville det være lækkert. Det er især løsningen med to forms som ser god ud synes jeg.
Avatar billede Slettet bruger
28. august 2003 - 17:19 #5
Problemet kan løses ved at bruge to formularer som fx her:

<body>
<form>
<input type="file" name="fil" id="fil" style="display: none;" onchange="document.frm.filtxt.value = this.value;" />
</form>
<form name="frm">
<input type="text" name="filtxt" readonly="readonly" style="border: 1px solid black; font-family: Verdana; font-size: 80%;" /> <img src="file://D|/My Documents/MPM filer/Billeder/ak47.GIF" style="width: 50px; height: 15px;" onclick="document.all.fil.click();" /><br />
<a href="#" onclick="document.frm.submit(); return false;">Submit</a>
</form>
</body>
Avatar billede mm12010 Nybegynder
14. september 2005 - 14:00 #6
skal vi lukke dette spg ?-)
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

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