ASP.NET上傳圖片並在DataGrid中顯示

來源:互聯網
上載者:User
一、程式功能:當上傳圖片大小超過8K或格式不符時禁止上傳,上傳通過之後,用DataGrid顯示上傳的圖片

  二、建立資料庫

  在MSSQL的NorthWind資料庫中建立一個users表,表設計如下:

列名 資料類型 長度 是否可以為空白 其它
id int 4 主鍵,設標識為是,識別值種子1,遞增量1
headimg varchar 50

  三、表單設計:

  1、建立ASP.NET Web應用程式,命名為DataGrid3,儲存路徑為http://192.168.0.1/DataGrid3(註:我機子上的網站的IP是192.168.0.1的主目錄是D:\web檔案夾)然後點擊確定。

  2、在方案總管視窗中,將WebForm1.aspx重新命名為UpPicture.aspx,然後從工具箱中向表單添加一個Label控制項、一個BUtton按鈕.然後從一個HTML工具箱中向表單添加一個File field控制項表單介面如下:

  3、在方案總管視窗中右擊項目,選擇添加-新項-Web表單,名稱設為ViewPicture.aspx。然後在開啟的表單中添加一個DataGrid控制項。

  4、右擊DataGrid控制項,再點擊下方的“屬性產生器”,開啟“DataGrid屬性視窗”。在“DataGrid屬性視窗”點擊“列”,取消“在運行時自動建立列”前的對勾,向選定的列中添加一個繫結資料行,在頁首文本中輸入“序號”,在資料欄位中輸入ID。再向選定的列中添加一個繫結資料行,在頁首文本中輸入“頭像”,在資料欄位中輸入headimg。然後點擊確定。

  表單介面如下;


  四、代碼設計:

  1、UpPicture.aspx

Imports System.Data.SqlClient
 Public Class WebForm1
 Inherits System.Web.UI.Page
 '表單代碼省略
 '上傳圖片
 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Dim img As String
 '定義postedfile檔案是儲存使用者上傳的檔案
 Dim postedfile As HttpPostedFile = File1.PostedFile
 '定義一個變數儲存使用者上傳檔案的大小
 Dim intImgSize As Int32
 '擷取使用者上傳檔案的大小,
 intImgSize = postedfile.ContentLength

 '如果要上傳的檔案不為空白
 If intImgSize <> 0 Then

  '如果大於8K, 則禁止上傳
  If intImgSize > 8000 Then
   Label1.Text = "圖片太大"
   Exit Sub
  End If

  '定義一個變數儲存使用者上傳圖片的檔案類型
  Dim strImgType As String = postedfile.ContentType

  '只接受.gif格式的圖片
  Dim filesplit() As String = Split(strImgType, "/")
  strImgType = filesplit(filesplit.Length - 1)
  If strImgType <> "gif" Then
   Label1.Text = "圖片格式不對"
   Exit Sub
  End If

  '儲存要上傳的檔案的整個路徑
  filesplit = Split(postedfile.FileName, "\")
  '取得上傳檔案的檔案名稱
  Dim filename As String = filesplit(filesplit.Length - 1)
  '將上傳的圖片儲存到伺服器目前的目錄的headimg檔案夾中
  postedfile.SaveAs(Server.MapPath("headimg") & "\" & filename)
  '定義一個變數儲存伺服器上當前上傳圖片的路徑
  Dim imgpath As String = "headimg\" & filename
  img = "<img src=" & imgpath & " border=0>"

  '將圖片儲存到資料庫
  Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")
  scon.Open()
  Dim scom As New SqlCommand("insert into users values (@img)", scon)
  scom.Parameters.Add("@img", SqlDbType.VarChar).Value = img
  Try
   scom.ExecuteNonQuery()
   Catch ex As Exception
  End Try
  scon.Close()
  '轉到查看圖片視窗
  Response.Redirect("ViewPicture.aspx")
 End If
End Sub
End Class

  2、ViewPicture.aspx代碼:

Imports System.Data.SqlClient
 Public Class ViewPicture
  Inherits System.Web.UI.Page
  ‘表單代碼省略
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
   Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")
   Dim sda As New SqlDataAdapter("select * from users", scon)
   Dim ds As New DataSet
   Try
    sda.Fill(ds)
    Catch ex As Exception
   End Try
   DataGrid1.DataSource = ds
   DataGrid1.DataBind()
  End Sub
 End Class
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.