利用VB.NET向服務器上傳文件
創(chuàng)新互聯(lián)建站主要從事成都做網(wǎng)站、網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務崇義,十多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575
文件上傳技術是一個很實用的技術,有著很廣泛的應用,在ASP.NET自身的前一個版本ASP里實現(xiàn)這個功能,就必須使用第三方的組件或者自己開發(fā)組件了,現(xiàn)在,用ASP.NET實現(xiàn)起來就簡單得多了,不需要使用任何組件就可以實現(xiàn)上傳的功能了。
為了方便理解,可以把文件上傳分成兩種類型:單一文件上傳和多文件上傳。
單一文件上傳
首先單一文件上傳的方法,單一文件上傳就比較簡單了,
下面是實現(xiàn)單一文件上傳的完整代碼:
%@ Import Namespace="System" %
%@ Import Namespace="System.Web.HttpPostedFile" %
%@ Import Namespace="System.Web.UI.HtmlControls.HtmlInputFile" %
script language="VB" runat="server"
Sub UpLoad(Src As Object, E As EventArgs)
If UploadFile.PostedFile.ContentLength=0 then
ShowUpLoadFile.innerText="上傳失敗或文件不存在!"
Else
''''獲取文件名
dim Temp() as String=Split(UploadFile.PostedFile.FileName,"\")
dim FileName as String=Temp(Temp.Length-1)
''''保存文件
UploadFile.PostedFile.SaveAs(Server.MapPath(".") "\Files\" FileName)
''''顯示上傳結果
ShowUpLoadFile.InnerHtml="文件上傳成功!br上傳文件名:" FileName
End If
End Sub
/script
html
body
form runat="server" enctype="multipart/form-data"
input type="file" id="UploadFile" runat="server" size="50"br
asp:button runat="server" Text="立即上傳" onClick="Upload" /
/form
hrbr
span id="ShowUpLoadFile" runat="server"/span
/body
/html
把上面的代碼保存成.aspx文件,然后在該文件所在目錄下創(chuàng)建一個存放文件的新目錄Files,運行,先感受一下效果,然后再繼續(xù)看下面的講解
使用ASP.NET上傳文件,需要用到.NET框架的兩個類:HttpPostedFile和HtmlInputFile,這兩個類所在的命名空間分別是System.Web.HttpPostedFile和System.Web.UI.HtmlControls.HtmlInputFile,所以我們要在文件開頭先導入這兩個命名空間,
其中的PostedFile表示上傳到服務器的文件,它包含幾個常用的屬性:
ContentLength:文件大小;
FileName :上傳文件的詳細路徑及文件名;
ContentType :上傳文件的文件類型。
字符分割函數(shù)Split是用來取得文件名的,因為通過PostedFile.FileName獲得的是詳細的路徑及文件名。
多文件上傳
所謂的多文件上傳就是同時上傳多個文件,這個跟單一文件上傳大多是相同的,不同的是多文件上傳是把所有文件作為一個文件集合一起上傳到服務器的,我們需要的是把這個文件集合分解成一個個單一的文件,剩下的處理方法就跟單一文件上傳一樣了。
首先要知道要最多同時上傳多少個文件,然后就在form之間放多少個如下的HtmlInput控件:
input type="file" runat="server" size="50"
注意:這里的HtmlInput控件控件是不需要設置ID的
那如何在上傳到服務器的文件集合中取出一個個的文件?看下面的代碼:
dim i as integer
For i=0 to Request.Files.Count-1
‘使用Request.Files()來逐個獲取上傳的文件
dim myFile as HttpPostedFile=Request.Files(i)
''''這里的myFile就相當于上例中的PostedFile,可以用myFile.FileName獲得文件名,etc
''''這里的處理代碼就跟單一文件上傳的一樣了
Next
現(xiàn)在掌握了ASP.NET文件上傳技術了
dim a as double
dim b as double
if (string.IsNullOrEmpty(txt1.Text) or string.IsNullOrEmpty(txt2.Text)) begin
messagebox.show("請輸入數(shù)值");
return;
end
if double.TryParse(txt.Text, out a ) begin
else begin
Messagebox.show('文本框1包含非數(shù)字')
return;
end
if double.TryParse(txt2.Text, out b) begin
else
Messagebox.show('文本框2包含非數(shù)字')
return;
end
Label1.Text = 0.6*a + 0.4*b;
Imports System
Imports System.Drawing
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data.OleDb
Imports System.Data
Public Class Form1
Inherits Form
Private components As System.ComponentModel.Container = Nothing
Private WithEvents lastrec As Button
Private WithEvents nextrec As Button
Private WithEvents previousrec As Button
Private WithEvents firstrec As Button
Private t_books As TextBox
Private t_nl As TextBox
Private t_xb As TextBox
Private t_xm As TextBox
Private t_id As TextBox
Private l_books As Label
Private l_nl As Label
Private l_xb As Label
Private l_xm As Label
Private l_id As Label
Private label1 As Label
Private myDataSet As DataSet
Private WithEvents button1 As Button
Private WithEvents button2 As Button
Private WithEvents button3 As Button
Private WithEvents button4 As Button
Private myBind As BindingManagerBase
Public Sub New ( )
MyBase.New ( )
GetConnected ( )
InitializeComponent ( )
End Sub
'清除在程序中使用過的資源
Protected Overloads Overrides Sub Dispose (ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose ( )
End If
End If
MyBase.Dispose ( disposing )
End Sub
Public Sub GetConnected ( )
'創(chuàng)建一個數(shù)據(jù)連接
Dim strCon As String = " Provider = Microsoft.Jet.OLEDB.4.0 ;
Data Source = db.mdb "
Dim myConn As OleDbConnection = New OleDbConnection ( )
myConn.ConnectionString = strCon
Dim strCom As String = " SELECT * FROM person "
'創(chuàng)建一個 DataSet
myDataSet = New DataSet ( )
myConn.Open ( )
'通過OleDbDataAdapter對象得到一個數(shù)據(jù)集
Dim myCommand As OleDbDataAdapter = New OleDbDataAdapter
( strCom , myConn )
'把Dataset綁定books數(shù)據(jù)表
myCommand.Fill ( myDataSet , "person" )
'關閉此數(shù)據(jù)連接
myConn.Close ( )
End Sub
'插入數(shù)據(jù)記錄操作代碼
Private Sub button2_Click (ByVal sender As Object , _
ByVal e As System.EventArgs) Handles button2.Click
'判斷所有字段是否添完,添完則執(zhí)行,反之彈出提示
If ( t_id.Text "" And t_xm.Text ""
And t_xb.Text "" And t_nl.Text ""
And t_books.Text "" ) Then
Dim myConn1 As String = " Provider = Microsoft.Jet.OLEDB.4.0 ;
Data Source = db.mdb"
Dim myConn As OleDbConnection = New OleDbConnection ( myConn1 )
myConn.Open ( )
Dim strInsert As String = " INSERT INTO person ( id , xm , xb , nl
, zip ) VALUES ( " _
t_id.Text + " , '" _
t_xm.Text + "' , '" _
t_xb.Text + "' , " _
t_nl.Text + " , " _
t_books.Text + ")"
Dim inst As OleDbCommand = New OleDbCommand ( strInsert , myConn )
inst.ExecuteNonQuery ( )
myConn.Close ( )
myDataSet.Tables ( "person" ).Rows ( myBind.Position ).BeginEdit ( )
myDataSet.Tables ( "person" ).Rows ( myBind.Position ).EndEdit ( )
myDataSet.Tables ( "person" ).AcceptChanges ( )
Else
MessageBox.Show ( "必須填滿所有字段值!" , "錯誤!" )
End If
End Sub
當前題目:.netvbguan方例程 net5 vb
轉(zhuǎn)載注明:http://vcdvsql.cn/article32/dopehsc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、動態(tài)網(wǎng)站、關鍵詞優(yōu)化、軟件開發(fā)、虛擬主機、云服務器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)