Hej Hej, intressant tillvägagångssätt, Jag ser inte varför det inte skulle fungera, har du annat på sidan också eller är det där den enda koden? Hej, det är den enda koden på sidan, då jag började med att försöka åstakomma detta innan jag implementerade det i mer avancerad sammanhang. Och ser inte heller någon egentlig anledning till att det inte ska fungera. Hej igen tittade lite till på din kod och såg Jo, visst ska jag använda filnamnet till något, men i detta exempel provade jag bara att sätta det till en variabel för att kunna se om filen finns kvar i fileupload när jag debuggar.FileUpload, annan text på knapp
Jag har behov av att låta användare ladda upp filer via websida, men designen och texten på input av typen file (samma med FileUpload) browse knappen är inte enligt önskemål.
Det jag då försöker göra är att göra en "fake" TextBox och Button som ska presenteras för användaren:
<head>
<script type="text/javascript">
function Button1_onclick()
{
document.getElementById('File1').click();
}
function fileChange()
{
document.getElementById('Text1').value= document.getElementById('File1').value;
}
</script>
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="File1" runat="server" style="display:none;position: static;" type="file" onchange="fileChange()" />
</div>
<input id="Text1" style="position: static" type="text" />
<input id="Button1" style="position: static" type="button" value="MyButton" onclick="return Button1_onclick()" />
<asp:Button ID="btn" runat="server" Text="Submit" OnClick="btn_Click"/>
</form>
</body>
btn_Click i code behind:
protected void btn_Click(object sender, EventArgs e)
{
string te = File1.PostedFile.FileName;
}
När man använt fake-knappen och valt fil och sedan klickar på Submit behövs det 2 klick för att eventet ska triggas. Det första klicket resulterar i att File1 kontrollen töms och alltså finns inte den valda filen då knapp-eventet körs.
Detta inträffar inte då File1 inte har runat=server, men då går det inte att komma åt kontrollen (inte via Page.Form.FindControl("File1")).
Vet att det är en del säkerhetsbegränsningar vad gäller att ladda upp fil.
Min fråga är helt enkelt, går detta att göra? Och i så fall, vad är det för fel på mitt exempel?
Tacksam för svar
Sandra
Sv: FileUpload, annan text på knapp
Ett annat alternativ är att använda någon färdig upload-kontroll.
Själv använder jag
http://www.codeplex.com/FlajaxianFileUpload
som har otroligt många bra finesser och ger bra kontroll över utseendet också. Dessutom är den open source så om det är något som inte kan ändras by default så kan du själv gå in och ändra det.
Jag ser ingen anledning att programmera en egen uploader när det finns så bra alternativ. Om du nu inte gör det som en skoluppgift eller för att lära dig.Sv:FileUpload, annan text på knapp
Detta är något som jag gör på jobbet, och är inte riktigt säker på hur policyn är för att använda open source. Tänker dock kolla på upload-kontrollen du tipsade om och se om det är ett alternativ.
/SandraSv: FileUpload, annan text på knapp
<code>
protected void btn_Click(object sender, EventArgs e)
{
string te = File1.PostedFile.FileName;
}
</code>
Borde du inte skriva ut filnamnet någonstans också? Nu sparas det i en variabel men behandlas ingenstans?
Men rekommenderar soms agt ändå att du kör med flajaxian om det är okej på ditt jobb.Sv:FileUpload, annan text på knapp
Tanken är i slutändan att det eventet ska spara ned filen, men då inte grundfunktionaliteten fungerar har jag totalt brytit ut den delen.
/Sandra