Download presentation
We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Buttons:
Presentation is loading. Please wait.
Published bySiska Oesman Modified 6年之前
1 Ch11 檔案上傳及電子郵件 WEB程式設計
2 <html> <head> <script runat="server"> Sub Page_Load(ByVal sender as Object, ByVal e As EventArgs) Dim i As Integer For i=1 to 30 DateList.Items.Add(i) Next End Sub </script> </head> <body> <form runat="server"> 日期: <asp:DropDownList runat="server" ID=“DateList"/> </form> </body> </html>
3 HtmlInputFile檔案控制項-語法ASP.NET的Web表單可以使用HTML控制項的HtmlInputFile檔案控制項檢視客戶端的檔案清單,然後在客戶端選擇上傳的檔案,其基本語法如下所示: <input type="FILE" id="field_name" size="number" accept="image/*" runat="Server"/> 標籤也是Input欄位,只是type屬性為FILE,這個標籤可以顯示一個欄位和一個按鈕以選取檔案。
4 HtmlInputFile檔案控制項-使用使用HtmlInputFile控制項的目的是上傳檔案,Web表單<form>標籤需要使用enctype屬性指定編碼方式,如下所示: <form enctype="multipart/form-data" runat="Server"> ………….. </form> enctype屬性指定的是上傳檔案的編碼方式,如下所示: enctype="multipart/form-data" 屬性值可以將選擇檔案內容上傳到Web伺服器。
5 上傳單一檔案-匯入名稱空間 上傳檔案需要使用到System.IO名稱空間的HttpPostedFile類別,所以在ASP.NET程式的開頭需要匯入此名稱空間,如下所示: Import Namespace="System.IO" %> 只需在Web表單的HtmlInputFile控制項選好上傳檔案,上傳的檔案資料就會隨著網頁送回伺服端。
6 上傳單一檔案-使用 在伺服端使用此控制項的PostedFile屬性取得HttpPostedFile物件,如下所示:Dim file As HttpPostedFile = filename.PostedFile 程式碼取得HtmlInputFile控制項屬性PostedFile的HttpPostedFile物件,然後使用SaveAs()方法將檔案資料寫成伺服端的檔案,如下所示: file.SaveAs(up_path & "/" & _ Path.GetFileName(file.FileName)) FileName屬性可以取得上傳檔案的名稱,ContentLength屬性取得上傳檔案的長度,Path類別的GetFileName()方法可以取得路徑中的檔案名稱。
7 範例1:上傳檔案 <%@ Page Language="VB" Debug="True" %>Import Namespace="system.IO" %> <script Runat="server"> Sub UpLoadFile(S As Object, e As EventArgs) Dim uploadPath As String =Server. MapPath("Ch11") Dim file As HttpPostedFile = filename.PostedFile If file.ContentLength = Nothing Then msg.Text = "請選擇上傳的檔案" Else file.SaveAs(uploadPath & "/" & Path.GetFileName(file.FileName)) msg.Text = "檔案上傳成功" End If End Sub </script> <html> <head> <title>上傳檔案</title> </head> <body> <form enctype="multipart/form-data" runat="server"> <input type="FILE" Id="filename" size="40" runat="server"/><br/> <asp:Button OnClick="UploadFile" Text="上傳檔案" runat="server"/><br/> <asp:Label id="msg" runat="server" /> </form> </body> </html>
8 同時上傳多個檔案-取得集合物件 如果Web表單擁有多個HtmlInputFile控制項,我們就可以同時上傳多個檔案,在選擇好多個上傳檔案後,伺服端可以取得這些檔案的集合物件,如下所示: Dim objFileCollection As HttpFileCollection = _ Request.Files 程式碼使用Request物件的Files屬性取得上傳檔案的HttpFileCollection物件,這是HttpPostedFile集合物件。
9 同時上傳多個檔案-儲存上傳檔案 在取得上傳檔案的集合物件後,使用For Next迴圈取得每一個HttpPostedFIle物件,如下所示:For i = 0 To objFileCollection.Count - 1 file = objFileCollection(i) If file.ContentLength <> Nothing Then file.SaveAs(up_path & "/" & _ Path.GetFileName(file.FileName)) End If Next i 程式碼的Count屬性可以取得物件數,在取得每一個HttpPostedFile物件後,使用SaveAs()方法儲存上傳的檔案。
10 Web表單的電子郵件寄送-匯入名稱空間 在ASP.NET程式處理電子郵件,寄送郵件是使用System.Web.Mail名稱空間的MailMessage和SmtpMail類別,在程式的開頭需要匯入此名稱空間,如下所示: Namespace="System.Web.Mail" %> 在匯入名稱空間後,即可使用MailMessage類別建立電子郵件,然後使用SmtpMail類別寄送郵件。
11 Web表單的電子郵件寄送-MailMessage類別Dim mail As MailMessage = New MailMessage() 程式碼使用New運算子建立名為mail的MailMessage物件,接著就可以設定物件的相關屬性來建立郵件內容。
12 Web表單的電子郵件寄送-MailMessage類別的屬性
13 Web表單的電子郵件寄送-SmtpMail類別的屬性和方法
14 範例2: 寄送電子郵件 <%@ Page Language="VB" %>Import Namespace="System.Web.Mail" %> <html> <head> <title>範例11_02:電子郵件寄送</title> <script Language="VB" runat="server"> Sub send _Click(s as object, e as eventargs) '設定 物件 Dim mail As new MailMessage 'Dim SmtpServer As SmtpMail = New SmtpMail() '設定收件者 mail.To = '設定寄件者 mail.From = '設定副本收件者 mail.Cc = '指定郵件格式 If Format.Checked Then mail.BodyFormat = MailFormat.Html 'HTML格式 else '文字格式 mail.BodyFormat = MailFormat.Text End If '設定優先等級 mail.Priority = MailPriority.Normal '主旨 mail.Subject = Subject.Text '本文 mail.Body = Body.Text '設定SMTP伺服器 SmtpMail.SmtpServer = "mail.nkmu.edu.tw" '寄出郵件 SmtpMail.Send(mail) msg.Text = "電子郵件已經寄出...<br>" End Sub </script> </head> <body> <center><h2>表單的電子郵件寄送</h2></center> <hr> <form runat="server"> <b>地址: </b><asp:TextBox id=" To" runat="Server" /><br> <b>主旨: </b><asp:TextBox id=" Subject" runat="Server" /><br> <b>內容: </b><asp:CheckBox id=" Format" runat="Server" /> <b>HTML格式</b><br> <asp:TextBox id=" Body" TextMode="MultiLine" Columns="30" Rows="10" runat="Server" /> <br> <asp:Button Text="寄出" OnClick="send _Click" runat="Server" /> </form> <asp:Label id="msg" runat="Server" /> </body> </html>
15 電子郵件的附檔處理 當Web表單輸入郵件內容且選擇好附檔後,需要先上傳附檔,如下所示:uploadFile = temp_path & "/" & _ Path.GetFileName(fileName.FileName) fileName.SaveAs(uploadFile) 程式碼在上傳好郵件的附檔後,就可以建立附檔的MailAttachment物件,如下所示: Dim mailAttachedFile As MailAttachment=New _ MailAttachment(uploadFile) mail.Attachments.Add(mailAttachedFile) 程式碼建立好MailAttachment物件,然後將附檔新增到Attachments屬性的集合物件。
16 範例3: 有附件檔案的電子郵件 <%@ Page Language="VB" %>Import Namespace="System.Web.Mail" %> Import Namespace="System.IO" %> <html> <head> <title>範例11_03:電子郵件寄送附件檔</title> <script Language="VB" runat="server"> Sub send _Click(s as object, e as eventargs) '設定 物件 Dim mail As new MailMessage 'Dim SmtpServer As SmtpMail = New SmtpMail() '設定收件者 mail.To = '設定寄件者 mail.From = '設定副本收件者 mail.Cc = '指定郵件格式 If Format.Checked Then mail.BodyFormat = MailFormat.Html 'HTML格式 else '文字格式 mail.BodyFormat = MailFormat.Text End If '設定優先等級 mail.Priority = MailPriority.Normal '主旨 mail.Subject = Subject.Text '本文 mail.Body = Body.Text Dim temp_path As String = Server.MapPath("/") Dim uploadFile As String = "" '取得HttpPostedFile物件 Dim fileName As HttpPostedFile = attachedFile.PostedFile '檢查檔案是否有內容 If fileName.ContentLength <> Nothing Then '上傳檔案儲存的路徑 uploadFile = temp_path & "/" & Path.GetFileName(fileName.FileName) fileName.SaveAs(uploadFile) '在電子郵件加上附檔 Dim mailAttachedFile As MailAttachment = New MailAttachment(uploadFile) mail.Attachments.Add(mailAttachedFile) End If '設定SMTP伺服器 SmtpMail.SmtpServer = "mail.nkmu.edu.tw" '寄出郵件 SmtpMail.Send(mail) msg.Text = "電子郵件已經寄出...<br>" '刪除上傳的暫存檔案 If uploadFile <> "" Then File.Delete(uploadFile) End Sub </script> </head>
17 <body> <center><h2>電子郵件寄送附檔</h2></center> <hr> <form enctype="multipart/form-data" runat="server"> <b>地址: </b><asp:TextBox id=" To" runat="Server" /><br> <b>主旨: </b><asp:TextBox id=" Subject" runat="Server" /><br> <b>內容: </b><asp:CheckBox id=" Format" runat="Server" /> <b>HTML格式</b><br> <asp:TextBox id=" Body" TextMode="MultiLine" Columns="30" Rows="10" runat="Server" /> <br> <b>附檔: </b><input type="File" id="attachedFile" size="30" runat="server" /> <br> <asp:Button Text="寄出" OnClick="send _Click" runat="Server" /> </form> <asp:Label id="msg" runat="Server" /> </body> </html>
Similar presentations
題目:徽章之記憶 南台科技大學 機械系 車輛一乙 學號:4A 姓名:黃冠嘉 教師:謝慶存
計算機程式及實習 期末報告 題目:超級猜一猜
童詩教學 爬格子工作坊 互動過程 童詩教學法 教學教案 相關資源 心得 林士翔
遊程規劃實務 中華民國遊程規劃設計協會.
基于JSP搭建Web应用程序.
自 我 介 紹 班級:運促一乙 姓名:林以權 學號:D
第八章 DataGrid 與 DataTable 瀏覽器 DataTable DataGrid 存取 顯示表格 暑資碩三 房玄博 報告.
ASP.NET 網頁製作教本 – 從基本語法學起
佛山科学技术学院 第7章 HTML Internet及多媒体应用.
动态网页制作 第1章 HTML语言1.
主讲 冷清波 城乡规划管理与法规 主讲 冷清波
第13章 FTP檔案上傳、 自動傳送 報告人 M9153314 李育旻.
学习情境三:配置WEB服务器 服务器配置与管理.
《ASP.NET数据库网站设计教程(C#版)》
組長:呂淑君 組員:邱采王亭 吳仁傑 池姿霖 楊佩慈
《计算机网络技术》 asp.net 程序设计 文本类控件 笪静.
VBA应用开发与实例 李 辉 微软课程培训讲师. VBA应用开发与实例 李 辉 微软课程培训讲师.
題目:台灣客運 南臺科技大學 機械工程系 班級:奈米一乙 學號:4A 姓名:蔡政堯 授課教師:謝慶存
HTML簡介、文字的變化、超連結的使用 主講:朱漢琳.
Ch03 VB.NET語法建立ASP.NET 網頁程式設計.