1 / 41

ASP.NET 網頁製作教本 – 從基本語法學起

ASP.NET 網頁製作教本 – 從基本語法學起. 第13章 FTP 檔案上傳、 Email 自動傳送. 13-1 FTP 檔案上傳. FTP 檔案上傳的要素. 表單的 Enctype( 編碼型態)屬性須設定成 " multipart/form-data"。 佈置 File 型態的 HTML 輸入欄位,供使用者選取所要上傳的檔案 。. upload.aspx 例子 (1). < Html> <Body BgColor=White> <H3> 檔案上傳 -- 上傳一個檔案 < Hr></H3>

abba
Download Presentation

ASP.NET 網頁製作教本 – 從基本語法學起

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NET 網頁製作教本 – 從基本語法學起 第13章 FTP 檔案上傳、Email 自動傳送

  2. 13-1 FTP 檔案上傳

  3. FTP 檔案上傳的要素 • 表單的 Enctype(編碼型態)屬性須設定成 "multipart/form-data"。 • 佈置 File 型態的 HTML 輸入欄位,供使用者選取所要上傳的檔案 。

  4. upload.aspx 例子 (1) <Html> <Body BgColor=White> <H3>檔案上傳 -- 上傳一個檔案<Hr></H3> <Form Enctype="multipart/form-data" runat="server"> 請輸入完整檔案路徑: <Input Type="File" id="FileUp" runat="server"><P> <asp:Button runat="server" Text="Upload" OnClick="UploadFile" /> <Hr> <asp:Label runat="server" id="Msg" /> </Form> </Body> </Html>

  5. upload.aspx 例子 (2) <script language="VB" runat="server"> Sub UploadFile(sender As Object, e As EventArgs) Dim file As HttpPostedFile = FileUp.PostedFile If file.ContentLength <> 0 Then Msg.Text = "大小: " & File.ContentLength Msg.Text &= "<br>類型: " & File.ContentType Msg.Text &= "<br>名稱: " & File.FileName

  6. upload.aspx 例子 (3) Dim FileSplit() As String = Split( File.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) ) Else Msg.Text = "" End If End Sub </script>

  7. Upload.aspx 網頁

  8. Upload.aspx 網頁 表單的佈置(1) • 位於 <Form ...> 與 </Form> 之間的標示在完成以下的表單佈置:

  9. Upload.aspx 網頁 表單的佈置(2) <Form Enctype="multipart/form-data" runat="server"> 請輸入完整檔案路徑: <Input Type="File" id="FileUp" runat="server"><P> <asp:Button runat="server" Text="Upload" OnClick="UploadFile" /> <Hr> <asp:Label runat="server" id="Msg" /> </Form>

  10. Upload.aspx 網頁UploadFile 事件程序 (1) • 按下「Upload」鈕時,瀏覽器會上傳檔案,並啟動此一事件程序處理所上傳的檔案。

  11. Upload.aspx 網頁UploadFile 事件程序 (2) <script language="VB" runat="server"> Sub UploadFile(sender As Object, e As EventArgs) Dim file As HttpPostedFile = FileUp.PostedFile If file.ContentLength <> 0 Then Msg.Text = "大小: " & File.ContentLength Msg.Text &= "<br>類型: " & File.ContentType Msg.Text &= "<br>名稱: " & File.FileName

  12. Upload.aspx 網頁UploadFile 事件程序 (3) Dim FileSplit() As String = Split( File.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) ) Else Msg.Text = "" End If End Sub </script>

  13. UploadFile 事件程序注意一 • If file.ContentLength <> 0 Then: 利用此一條件式判斷檔案是否上傳成功,若 File.ContentLength = 0,表示檔案未上傳成功。

  14. UploadFile 事件程序注意二 • 存檔的方法:請注意利用 file.FileName 所讀取的檔案名稱是上網者那一端的完整路徑檔案名稱,因此我們須利用以下敘述取出其中的檔案名稱(不含路徑): 然後再利用以下敘述將檔案儲存在Upload.aspx 的所在目錄: Dim FileSplit() As String = Split( file.FileName, "\" )Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) )

  15. 上傳多個檔案

  16. 節錄自 Uploads.aspx (1) <Form Enctype="multipart/form-data" runat="server"> 請輸入完整路徑檔案名稱:<br> <Input Type="File" id="FileUp1" runat="server"><br> <Input Type="File" id="FileUp2" runat="server"><br> <Input Type="File" id="FileUp3" runat="server"><br> <asp:button runat="server" Text="Upload" OnClick="UploadFile" /> <Hr> <asp:Label runat="server" id="Msg" /> </Form>

  17. 節錄自 Uploads.aspx (2-1) Sub UploadFile(sender As Object, e As EventArgs) Dim I As Integer Msg.Text = "" For I = 0 To Request.Files.Count - 1 Dim File As HttpPostedFile = Request.Files(I) If File.ContentLength > 0 Then ' 顯示上傳檔案的資訊 Msg.Text &= "檔案: " & File.FileName Msg.Text &= ", " & File.ContentLength Msg.Text &= ", " & File.ContentType & "<br>"

  18. 節錄自 Uploads.aspx (2-1) ' 儲存檔案 Dim FileSplit() As String = Split( File.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) ) End If Next End Sub

  19. 13-2 Email 自動傳送

  20. Email 自動傳送 • 在網頁製作中,需要自動傳送 Email 給上網者的情況很多,例如: • 電子購物網頁 • 密碼網頁 • 電子賀卡

  21. MailMessage 及 SmtpMail 物件 • 在ASP.NET 底下,欲傳送 Email,須使用 MailMessage 及 SmtpMail 物件,其中MailMessage用來設定Email的內容,而SmtpMail則是將Email傳送出去

  22. MailMessage 及 SmtpMail 物件的程式架構 (1) <%@ Import Namespace="System.Web.Mail" %>Dim mail as New MailMessage ' 建立一個MailMessage物件' 設定郵件的屬性mail.To = 收件人e-mailmail.From = 送件人e-mailmail.Subject = 主旨mail.BodyFormat = 郵件格式(純文字或Html)mail.Body = 郵件內容

  23. MailMessage 及 SmtpMail 物件的程式架構 (2) ' 藉助SmtpMail送出郵件On Error Resume NextSmtpMail.SmtpServer = SMTP Server的網址SmtpMail.Send(mail) If Err.Number <> 0 Then ' 郵件送出失敗, 接著利用Err.Description讀取錯誤訊息 Else ' 郵件送出成功 End If

  24. SMTP Server 與郵件的傳送 • 把SMTP Server設定成HiNet的SMTP Server,如下: SmtpMail.SmtpServer = "msa.hinet.net"SmtpMail.Send(mail)

  25. Email 傳送實例

  26. mail01.aspx (1) <%@ Import Namespace="System.Web.Mail" %> <Html> <Body BgColor="White"> <H2>ASP.NET Email 發送程式!<Hr></H2> <Form runat="server"> <Table Border=1> <Tr><Td>收件者:</Td> <Td><asp:TextBox id="mailTo" Size=40 runat="server"/></Td></Tr> <Tr><Td>寄件者:</Td> <Td><asp:TextBox id="mailFrom" Size=40 runat="server"/></Td></Tr> <Tr><Td>主旨:</Td> <Td><asp:TextBox id="mailSubject" Size=40 runat="server"/></Td></Tr> <Tr><Td>內文:</Td> <Td><asp:TextBox runat="server" id="mailBody" TextMode="MultiLine" Rows=8 Cols=60 /> </Td></Tr> </Table> <asp:Button runat="server" Text="送出" OnClick="Button_Click" /> </Form>

  27. mail01.aspx (2) <Hr><asp:Label id="Msg" runat="server" ForeColor="Red" /><p> <Font Size=-1 Color=Blue>使用本範例之前,請先參閱書本「SMTP Server 與郵件的傳送」段落中的說明,設定好SmtpMail.SmtpServer 屬性。</Font> </Body> </Html> <script Language="VB" runat="server"> Sub Button_Click(sender As Object, e As EventArgs) Dim mail As MailMessage = New MailMessage mail.To = mailTo.Text mail.From = mailFrom.Text mail.Subject = mailSubject.Text mail.BodyFormat = MailFormat.Text mail.Body = mailBody.Text

  28. mail01.aspx (3) On Error Resume Next SmtpMail.SmtpServer = "msa.hinet.net" SmtpMail.Send(mail) If Err.Number <> 0 Then Msg.Text = Err.Description Else Msg.Text = "郵件已經送出!" End If End Sub </script>

  29. mail02.aspx 網頁

  30. mail02.aspx 程式(1) • 增加了「格式」選擇鈕: <asp:RadioButtonList id="Format" runat="server" RepeatDirection="Horizontal" RepeatColumns="2"> <asp:ListItem Selected>Html 格式</asp:ListItem> <asp:ListItem>純文字格式</asp:ListItem> </asp:RadioButtonList>

  31. mail02.aspx 程式(2) • 而設定屬性的程式修改成: mail.To = mailTo.Value mail.From = mailFrom.Value mail.Subject = mailSubject.Value If Format.SelectedItem.Text = "純文字格式" Then mail.BodyFormat = MailFormat.Text Else mail.BodyFormat = MailFormat.Html End If mail.Body = mailBody.Value

  32. 設定郵件格式

  33. 設定收件人姓名(1)

  34. 設定收件人姓名(2) • 將 Email 帳號改成「人名<Email 帳號>」,例如: mail.To = "王國榮<kjwang@gcn.net.tw>"mail.From = "阿毛<amou@kjwang.com>"mail.Subject = 主旨mail.BodyFormat = 郵件格式(純文字或Html)mail.Body = 郵件內容

  35. 多位收件人 • 如果同一郵件要傳送給多個人,可以將所有郵件地址串在一起,以 ',' 分隔,例如: mail.To = "王國榮<kjwang@gcn.net.tw>, 阿毛<amou@kjwang.com>"mail.From = "service@kjwang.com"mail.Subject = 主旨mail.BodyFormat = 郵件格式(純文字或Html)mail.Body = 郵件內容

  36. 副本收件人 • 設定副本收件人的方法是設定 Cc 屬性,例如: mail.To = "王國榮<kjwang@gcn.net.tw>"mail.From = "service@kjwang.com"mail.Cc = "阿毛<amou@kjwang.com>"mail.Subject = 主旨mail.BodyFormat = 郵件格式(純文字或Html)mail.Body = 郵件內容

  37. 密件副本收件人 • 設定密件副本收件人的方法是設定 Bcc 屬性,例如: mail.To = "王國榮<kjwang@gcn.net.tw>"mail.From = "service@kjwang.com"mail.Bcc = "阿毛<amou@kjwang.com>"mail.Subject = 主旨mail.BodyFormat = 郵件格式(純文字或Html)mail.Body = 郵件內容

  38. 增加附件到郵件中 • 在 Email 傳送中,若要將檔案附加到 Email 中一起傳送 -- 附加檔案,所需撰寫的程式如下: Dim attach As New MailAttachment(完整路徑檔案名稱)mail.Attachments.Add( attach )…SmtpMail.Send(mail)

  39. mail03.aspx 網頁

  40. mail03.aspx 網頁程式(1) • 新增 <Input Type=“File” ...> 欄位,如下: • 表單屬性的修改:表單需增加Enctype屬性的設定,如下: <Input Type="File" id="FileUp" runat="server"> <Form Enctype="multipart/form-data" runat="server">

  41. mail03.aspx 網頁程式(2) • 新增程式:在 Button_Click 事件程序中,新增以下程式: Dim file As HttpPostedFile = FileUp.PostedFile If file.ContentLength <> 0 Then Dim FileSplit() As String = Split( File.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) File.SaveAs( Server.MapPath(FileName) ) Dim attach As New MailAttachment(Server.MapPath(FileName)) mail.Attachments.Add( attach ) End If

More Related