|
 Napísanie kódu v ASP.NET na poslanie súboru na server (upload) je podobne jednoduché ako poslať e-mailovu správu. Používa sa na to komponenta HtmlInputFile.
V podstate k tomu potrebujeme umiestniť na stránku InputBox:
<input id="File1" type=file runat="server">
a zmeniť atribút Enctype vo formulári na multipart/form-data:
<form enctype="multipart/form-data" runat="server">>
Vo funkcii stlačenia tlačítka sa potom stačí opýtať, či je v InputBoxe
niečo napísané a poslaný súbor uložiť:
If Not IsNothing(File1.PostedFile) Then
File1.PostedFile.SaveAs(Server.MapPath("//")+Text1.Value)
End If
pričom Text1.Value je TextBox, z ktorého dostávame od užívateľa meno,
pod akým chceme súbor uložiť v tom istom adresári ako je subor .aspx.
Ak ho chceme uložiť v inom, treba zadať cestu k žiadanému adresáru
(viď kód nižšie).
Z objektu PostedFile je možné ešte získať hodnoty nasledujúcich
vlastností posielaného súboru:
ContentLength, ContentType, FileName, InputStream
Treba povedať, že tento postup funguje pri klientských browseroch,
ktoré podporujú HTML 3,2 a novších.
Takže celá, trochu vyšperkovaná, .aspx stránka, ktorá posiela súbor
na server bude vyzerať takto: (všimnite si elegantné riešenie
odchytenia prípadnej chyby)
<html>
<head>
<script language="VB" runat="server">
Sub Button1_Click(sender As Object, e As EventArgs)
If Text1.Value = "" Then
Span1.InnerHtml = "Chyba: musis napisat meno suboru"
Return
End If
If Not IsNothing(File1.PostedFile) Then
Try
File1.PostedFile.SaveAs("c: emp"+Text1.Value)
Span1.InnerHtml =
"Subor z adresara: " & File1.PostedFile.FileName
Span1.InnerHtml &=
" bol ulozeny na web servri takto: c: emp"& Text1.Value
Span1.InnerHtml &=
". Jeho velkost je: " & Convert.ToString(File1.PostedFile.ContentLength)
Span1.InnerHtml &=
"a jeho typ je: " & File1.PostedFile.ContentType
Catch exc As Exception
Span1.InnerHtml =
"Chyba pri ukladani suboru c: emp" & Text1.Value & ": " & Convert.ToString(exc)
End Try
End If
End Sub
</script>
</head>
<body>
<h3><font face="Verdana">HtmlInputFile</font></h3>
<form enctype="multipart/form-data" runat="server">
Subor k poslaniu na server: <input id="File1" type=file runat="server">
<p>
Uloz pod menom (bez cesty): <input id="Text1" type="text" runat="server">
<p>
<span id=Span1 style="font: 8pt verdana;" runat="server" />
<p>
<input type=button id="Button1" value="Posli" OnServerClick="Button1_Click"
runat="server">
</form>
</body>
</html>
Autor : Developer, čítané 16677x, komentárov: 0Hodnotenie : |           | | Utorok, 30. Marca 2004 |
Pridať nový komentár/Komentáre |
|
|
| |