NETworkMedlem sedan juni 20011 732 inlägg Som ni vet så är en input type="file" låst utseendemässigt men det gick att komma runt problemet genom att göra så här:
<input id="Img" type="file" style="VISIBILITY:hidden;POSITION:absolute" onchange="document.getElementById('path').value=this.value" runat="server">
<input id="path" type="text">
<input type="image" src="bild.gif" onclick="document.getElementById('Img').click();return false;">
Men problemet nu är att jag inte programmeringsmässigt kommer åt den fil jag väljer genom den här lösningen. Är det möjligt att komma åt den fil jag valt när formuläret för filhantering går via en <input type="image">? Skulle VERKLIGEN uppskatta en lösning! :)
JojoxxMedlem sedan juni 20004 308 inlägg Ge fil-fältet ett namn (name) så kommer du åt filen via det. Att sedan kontrollen till den är dold och klickningen emuleras spelar ingen roll.
<input id="Img" type="file" name="myfile" ...
NETworkMedlem sedan juni 20011 732 inlägg Får det inte att fungera. När jag väljer fil med min <input type="image"> så fylls även den "riktiga" <input type="file> i precis som jag vill (det ser jag om jag gör den synlig). Men när jag sedan ska spara så försvinner texten i min file samtidigt som jag får markören i dess ruta (fokus på file alltså) och den postar överhuvudtaget inte något till servern. Om jag trycker en andra gång på min spara-knapp så kör den min funktion som jag vill, men då är ju min file tom...
Använder jag den vanliga browse-knappen direkt så fungerar det precis som jag vill. :( Är det något jag missat? Varför får jag fokus på min file-kontroll istället för att posta tillbaka sidan till servern när jag trycker på min sparaknapp???
NETworkMedlem sedan juni 20011 732 inlägg Knappen som jag startar en funktion med ser ut så här:
<input type="submit" name="SavePageB" value="Spara/Uppdatera" id="SavePageB" />
Inga konstigheter alltså. Men istället för att posta tillbaka till servern så sätter den alltså fokus på min input type=file istället (samtidigt som den tömmer den på text)! När jag så klickar andra gången postas sidan tillbaka till servern och går in i den funktion som ska spara undan filen, men då är ju som sagt min input type="file" tom...
Detta händer alltså endast när jag hämtar filen via min input type="image"... om jag browsar direkt i min type="file" så fungerar det direkt...
Hur kan den där knappen fokusera på mitt formulär för filer istället för att starta funktionen???
<input name="_ctl0:Img1" id="_ctl0_Img1" type="file" onchange="document.getElementById('filePath').value=this.value" />
<br>
<br>
<input type="image" alt="Hämta fil" src="openImage.gif" onclick="document.getElementById('_ctl0_Img1').click();return false;">
<input id="filePath" type="text" style="WIDTH:200px">
<br>
<br><input type="submit" name="SavePageB" value="Spara/Uppdatera" id="SavePageB" />
dectgapMedlem sedan sep. 20021 655 inlägg Jag tycker att det ser farligt ut att använda <input type="image">. Byt ut den mot en vanlig bild istället bara.
NETworkMedlem sedan juni 20011 732 inlägg Ok, det är nog bättre. Men problemet är kvar... :( Fattar verkligen inte varför den fokuserar min <input type="file"> när jag postar formuläret, det finns INGET i koden som gör detta...
dectgapMedlem sedan sep. 20021 655 inlägg Jag skulle kunna tänka mig att IE avsiktligt fokuserar fältet ur säkerhetssynpunkt, för att man inte ska kunna lura folk att ladda upp filer som de inte vill ladda upp. Det är ju inga problem ifall input type="checkbox" eller "radio".
NETworkMedlem sedan juni 20011 732 inlägg Kan det vara så dumt? Jag menar, man måste ju i vilket fall som helst själv välja den fil som ska laddas upp. Jag vill verkligen ha en bild som man ska trycka på för att skicka upp en fil från hårddisken, det måste gå att lösa på nåt sätt! Får fortsätta kämpa med det här... om det finns någon som har en lösning så får ni gärna dela med er av den...
NETworkMedlem sedan juni 20011 732 inlägg Hehe, kom på en riktigt riktigt ful lösning... man lägger browse-knappen i ett lager och sätter dess opacity till 0. Under detta lager ligger ett annat lager med den knapp man vill använda. :)
I vilket fall som helst så verkar min ide ovan inte fungera, det var tytdligen en bugg i IE 5.5 som släppte igenom den lösningen och tidigare som från och med v6 är det som du trodde täppt. Förstår bara inte varför det ska vara så förbannat omöjligt att låta folk styla sina browse-knappar... :OO
JojoxxMedlem sedan juni 20004 308 inlägg Det verkar onekligen så. Jag vet att jag testat denna lösning förrut och då har den fungerat, men det har nog blivit spärrat via något IE-servicepack eller hotfix precis som dectgap säger.
Filvalsrutan är ju i sig rättså anonym så i princip kan du automatiskt kasta upp den när användaren kommer in på en sida och direkt när en fil är vald submittar du formuläret. Det kan säkert ses som en potentiell säkerhetsrisk.