如何利用ASP把圖片上傳到資料庫

來源:互聯網
上載者:User
 

  ASP(Active Server Pages)是Microsoft很早就推出的一種WEB應用程式解決方案,也是絕大多數從事網站開發人員很熟悉的一個比較簡單的編程環境。通過ASP我們可以建立功能強大的動態WEB應用程式。ASP雖然功能很強大,但有些功能用純ASP程式碼完成不了,為了能保證開發出功能更加強大的WEB應用程式,我們可以藉助調用COM組件。

  在日常工作中,例如開發一個“商品網上銷售系統”吧,為了使顧客對商品的外觀有所瞭解,也就是顧客在看商品的文字介紹的同時在文字的旁邊有該商品的圖片加以說明,這樣顧客就可以對該商品有個系統的瞭解,對推銷商品有很大的協助。所以我們在開發系統時當然就要加入圖片處理模組,即如何把圖片上傳到伺服器(圖片可以放在WEB伺服器上某一個檔案夾裡也可以放在SQL Server伺服器裡)和如何讓上傳的圖片在瀏覽器端顯示出來,這都是開發人員要考慮到的問題。

  上傳圖片到伺服器有多種方法,可以使用檔案上傳組件也可以使用純ASP代碼來實現。在CSDN的WEB版ASP上經常有網友問這樣的問題“如何利用ASP把圖片上傳到資料庫裡”,為了方便CSDN需要瞭解這方面的知識,這篇文章將詳細講解使用ASP上傳圖片的做法並給出代碼,以饗讀者。

  首先瞭解一下在程式中用到的各種對象及其文法:

  1) Request.BinaryRead()方法

  ● 使用Request.BinaryRead()方法可以擷取提交的檔案資料

  ● 文法

  VarReValue= Request.BinaryRead(number)

  變數VarReValue傳回值儲存從用戶端讀取到的位元據;

  參數number指明要從用戶端讀取的位元據量的大小。

  2) Response.BinaryWrite()方法

  ● 使用Response.BinaryWrite()方法可以從資料庫中擷取圖片資料並顯示到用戶端的瀏覽器中。

  ● 文法

  Response.BinaryWrite data

  參數data是要寫進用戶端瀏覽器中的位元據包。

  3) AppendChunk方法

  ● AppendChunk方法的作用是將位元據追加到Field或Parameter對象。

  ● 文法

  object.AppendChunk data

  參數data為要追加到Field或Parameter對象中的資料包。

  4) GetChunk方法

  ● GetChunk方法返回位元據的內容。

  ● 文法

  object. GetChunk(size)

  參數size指明要返回位元據的長度,可以是長整型運算式。

  5) Request.TotalBytes方法

  ● Request.TotalBytes方法返回從用戶端讀取到的資料的位元組數,這個值跟上面所提到的number相對應,可以大於或等於number值。

  ● 文法

  number= Request.TotalBytes

  大體瞭解了一些方法及其使用方法後,接下來我們就開始設計資料庫和相關編寫代碼了。

  第一步:資料庫的設計(以Ms SQL Server7為例):

  Create table img --建立用來儲存圖片的表,命名為img

  (

  id int identity(1,1) not null,

  img image

  )

  第二步:程式編寫,其中省略了使用者輸入介面,這裡只給出很重要的兩個檔案即圖片上傳處理(processimg.asp)和顯示圖片(ShowImg.asp)檔案。

  1) processimg.asp檔案代碼:

  〈%

  Response.Buffer=True

  ImageSize=Request.TotalBytes ‘擷取提交資料量的總位元組數

  ImageData=Request.BinaryRead(ImageSize) ‘儲存從用戶端讀取到的資料

  ‘最佳化讀取到的位元據

  BnCrLf=chrB(13)&chr(10)

  Divider=LeftB(ImageData,Clng(InstrB(ImageData, BnCrLf))-1)

  Dstart=InstrB(ImageData, BnCrLf& BnCrLf)+4

  Dend=InstrB(Dstart+1, ImageData, Divider)- Dstart

  MyData=MidB(ImageData, Dstart, Dend)

  ‘建立對象執行個體

  Set imgConn=Server.CreateObject(“ADODB.Connection”)

  StrConn=”Driver={SQL Server};Server=ServerName;”& _

“Uid=xxxx;Pwd=xxxx;DataBase=DataBaseName”

  imgConn.open strConn

  Set Rs= Server.CreateObject(“ADODB.RecordSet”)

  Sql=”Select * From img Where id is null”
 
  Rs.open sql,imgConn,1,3

  ‘追加資料到資料庫

  Rs.AddNew

  Rs(“img”).AppendChunk myData

  Rs.Update

  ‘關閉和釋放對象

  Rs.close

  ImgConn.close

  Set Rs=Nothing

  Set ImgConn=Nothing

  %〉

  2) ShowImg.asp檔案代碼:

  〈%

  Response.Expires = 0

  Response.buffer=True

  Response.clear

  ‘建立對象執行個體

  Set imgConn=Server.CreateObject(“ADODB.Connection”)

  StrConn=”Driver={SQL Server};Server=ServerName;”& _

“Uid=xxxx;Pwd=xxxx;DataBase=DataBaseName”

  imgConn.open strConn

  Set Rs= Server.CreateObject(“ADODB.RecordSet”)

  Sql=”Select img From img Where id=1” 這裡的id可以使用Request(“id”)獲得

  Rs.open sql,imgConn,1,1

  Response.ContentType=”image/*”

  Response.BinaryWrite Rs.(“img”).GetChunk(7500000)

  ‘關閉和釋放對象

  Rs.close

  ImgConn.close

  Set Rs=Nothing

  Set ImgConn=Nothing

  %〉

  至此,本文對如何使用ASP上傳圖片的原理和樣本都講完了,有什麼不妥的地方請各位指正,謝謝!同時希望本文能夠確實能為需要這方面協助的網友提供實質性的協助。(csdn)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.