亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用純ASP代碼實現圖片上傳

2019-11-18 20:05:46
字體:
來源:轉載
供稿:網友

作者:追風

  用asp編寫網站應用程序時間長了,難免會遇到各式各樣的問題,其中關于如何上傳文件到服務器恐怕是遇見最多的問題了,尤其是上傳圖片,比如你想要在自己的社區里面實現類似網易虛擬社區提供的“每日一星”的功能,就要提供給網友上傳照片的功能。上傳圖片文件到服務器可以使用各種免費的文件上傳組件,使用起來功能雖然很強大,但是由于很多情況下,我們只能使用免費的支持ASP的空間或者租用別人的虛擬空間,對于第一種情況,我們根本就沒有可能來使用文件上傳組件;至于第二種情況,我們也要付出不少的“銀子”才可以。除非你擁有自己的虛擬主機,你就可以隨便的在服務器上面安裝自己所需要的組件,這種情況對于大多數人來說是可望而不可及的。那我們就沒有辦法了嗎?呵呵,答案是肯定的(當然是肯定的了,要不然我也沒法寫出這篇文章?。?。下面就讓我們一起來使用純ASP代碼來實現圖片的上傳以及保存到數據庫的功能(順便也實現顯示數據庫中的圖片到網頁上的功能)。

 

  首先我們先來熟悉一下將要使用的對象方法。我們用來獲取上一個頁面傳遞過來的數據一般是使用Request對象。同樣的,我們也可以使用Request對象來獲取上傳上來的文件數據,使用的方法是Request.BinaryRead()。而我們要從數據庫中讀出來圖片的數據顯示到網頁上面要用到的方法是:
Request.BinaryWrite()。在我們得到了圖片的數據,要保存到數據庫中的時候,不可以直接使用Insert語句對數據庫進行操作,而是要使用ADO的AppendChunk方法,同樣的,讀出數據庫中的圖片數據,要使用GetChunk方法。各個方法的具體語法如下:
*Request.BinaryRead語法:
variant=Request.BinaryRead(count)
參數
variant
返回值保存著從客戶端讀取到數據。
count
指明要從客戶端讀取的數據量大小,這個值小于或者等于使用方法Request.TotalBytes得到的數據量。
*Request.BinaryWrite語法:
Request.BinaryWritedata
參數
data
要寫入到客戶端瀏覽器中的數據包。
*Request.TotalBytes語法:
variant=Request.TotalBytes
參數
variant
返回從客戶端讀取到數據量的字節數。
*AppendChunk語法
將數據追加到大型文本、二進制數據Field或Parameter對象。
object.AppendChunkData
參數
objectField或Parameter對象
Data變體型,包含追加到對象中的數據。
說明
使用Field或Parameter對象的AppendChunk方法可將長二進制或字符數
  據填寫到對象中。在系統內存有限的情況下,可以使用AppendChunk方法對長整型值進行部分而非全部的操作。
*GetChunk語法
返回大型文本或二進制數據Field對象的全部或部分內容。
variable=field.GetChunk(Size)
返回值
返回變體型。
參數
Size長整型表達式,等于所要檢索的字節或字符數。
說明
  使用Field對象的GetChunk方法檢索其部分或全部長二進制或字符數據。在系統內存有限的情況下,可使用GetChunk方法處理部分而非全部的長整型值。
GetChunk調用返回的數據將賦給“變量”。如果Size大于剩余的數據,則
GetChunk僅返回剩余的數據而無需用空白填充“變量”。如果字段為空,則
GetChunk方法返回Null。
  每個后續的GetChunk調用將檢索從前一次GetChunk調用停止處開始的數據。但是,如果從一個字段檢索數據然后在當前記錄中設置或讀取另一個字段的值,ADO將認為已從第一個字段中檢索出數據。如果在第一個字段上再次調用GetChunk方法,ADO將把調用解釋為新的GetChunk操作并從記錄的起始處開始讀取。如果其他Recordset對象不是首個Recordset對象的副本,則訪問其中的字段不會破壞GetChunk操作。
如果Field對象的Attributes屬性中的adFldLong位設置為True,則可以對該字段使用GetChunk方法。
如果在Field對象上使用Getchunk方法時沒有當前記錄,將產生錯誤3021(無當前記錄)。
  接下來,我們就要來設計我們的數據庫了,作為測試我們的數據庫結構如下(access2000):

 

字段名稱    類型    描述
  id   自動編號   主鍵值
    img          OLE對象   用來保存圖片數據 

 

對于在MSSQLServer7中,對應的結構如下:
字段名稱    類型    描述
  id    int(Identity)        主鍵值
     img      image             用來保存圖片數據 

 

現在開始正式編寫我們的純ASP代碼上傳部分了,首先,我們有一個提供給用戶的上傳界面,可以讓用戶選擇要上傳的圖片。代碼如下
(upload.htm):
<html>
<body>
<center>
<form name="mainForm" enctype="mult</form>
</center>
</body>
</html>
注意enctype="multipart/form-data",一定要在Form中有這個屬性,否則,將無法得到上傳上來的數據。接下來,我們要在process.asp中對從瀏覽器中獲取的數據進行必要的處理,因為我們在process.asp中獲取到的數據不僅僅包含了我們想要的上傳上來的圖片的數據,也包含了其他的無用的信息,我們需要剔除冗余數據,并將處理過的圖片數據保存到數據庫中,這里我們以access2000為例。具體代碼如下(process.asp):
<%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13)&chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
setconnGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&server.MapPath("images.mdb")&";uid=;PWD=;"
connGraph.Open
setrec=server.createobject("ADODB.recordset")
rec.Open"SELECT*FROM[images]whereidisnull",connGraph,1,3
rec.addnew
rec("img").appendchunkmydata
rec.update
rec.close
setrec=nothing
setconnGraph=nothing
%>
好了,這下我們就把上傳來的圖片保存到了名為images.mdb的數據庫中了,剩下的工作就是要將數據庫中的圖片數據顯示到網頁上面了。一般在HTML中,顯示圖片都是使用<IMG>標簽,也就是<IMGSRC="圖片路徑">,但是我們的圖片是保存到了數據庫中,“圖片路徑”是什么呢?呵呵,其實這個SRC屬性除了指定路徑外,也可以這樣使用哦:
<IMGSRC="showimg.asp?id=xxx">
所以,我們所要做的就是在showimg.asp中從數據庫中讀出來符合條件的
數據,并返回到SRC屬性中就可以了,具體代碼如下(showimg.asp):
<%
setconnGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={MicrosoftAccessDriver(*.mdb)};DBQ="&
server.MapPath("images.mdb")&";uid=;PWD=;"
connGraph.Open
setrec=server.createobject("ADODB.recordset")
strsql="selectimgfromimageswhereid="&trim(request("id"))
rec.openstrsql,connGraph,1,1
Response.ContentType="image/*"
Response.BinaryWriterec("img").getChunk(7500000)
rec.close
setrec=nothing
setconnGraph=nothing
%>
注意在輸出到瀏覽器之前一定要指定Response.ContentType="image/*",
以便正常顯示圖片。
最后要注意的地方是,我的process.asp中作的處理沒有考慮到第一頁(upload.htm)中還有其他數據,比如<INPUT type=tesxt name=userid>等等,如果有這些項目,你的process.asp就要注意處理掉不必要的數據。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
韩曰欧美视频免费观看| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品国产综合区久久久久久久| 国产精品成人av在线| 国产精品久久9| 欧美性猛交xxxx偷拍洗澡| 国产精品99久久久久久人| 欧美性猛交xxxx乱大交极品| 91在线色戒在线| 久久国产精品久久国产精品| 91亚洲一区精品| 亚洲欧美在线一区二区| 成人性生交大片免费观看嘿嘿视频| 欧美午夜精品久久久久久久| 美日韩丰满少妇在线观看| 91精品国产91久久久久久不卡| 欧美性猛交99久久久久99按摩| 亚洲精品一区二三区不卡| 国产91网红主播在线观看| 国内精品一区二区三区四区| 精品二区三区线观看| 日韩在线中文字| 日产精品久久久一区二区福利| 中文字幕在线看视频国产欧美在线看完整| 精品视频在线播放色网色视频| 国产视频自拍一区| 亚洲偷熟乱区亚洲香蕉av| 国产精品狠色婷| 日韩精品在线观| 国产成人精品免费视频| 国产精品视频久久久| 国产精品91久久久| www.亚洲一区| 国产精品入口免费视| 影音先锋日韩有码| 日韩精品在线影院| 91av在线免费观看| 日本欧美在线视频| 亚洲v日韩v综合v精品v| 成人免费看黄网站| 欧美日韩裸体免费视频| 精品中文字幕在线2019| 久久久亚洲国产| 国产日本欧美在线观看| 国产大片精品免费永久看nba| 久久国产精品免费视频| 热久久这里只有精品| 国产亚洲精品成人av久久ww| 国产精品一香蕉国产线看观看| 亚洲天堂免费观看| 日韩激情第一页| 欧美激情精品久久久久久变态| 茄子视频成人在线| 91久久国产精品91久久性色| 欧美亚洲成人精品| 亚洲片av在线| 国产在线视频不卡| 久久中文字幕在线视频| 国产精品激情自拍| www.亚洲成人| 亚洲女人初尝黑人巨大| 色天天综合狠狠色| 国产一区欧美二区三区| 欧美高清性猛交| 亚洲精品成a人在线观看| 福利二区91精品bt7086| 国产成人在线视频| 精品一区二区三区四区| 色综合久久悠悠| 欧美黄色片视频| 亚洲成人久久久久| 国产精品一区二区av影院萌芽| 在线观看欧美www| 国产精品久久久久影院日本| 久久韩国免费视频| 日韩电影在线观看中文字幕| 美女撒尿一区二区三区| 国模gogo一区二区大胆私拍| 不卡伊人av在线播放| 日韩在线视频免费观看| 国产日韩欧美综合| 国产欧美精品在线| 久久99青青精品免费观看| 亚洲美女激情视频| 国产精品久久77777| 国产亚洲视频在线| 亚洲第一区中文99精品| 欧美日韩不卡合集视频| 国产日产欧美a一级在线| 国产精品丝袜高跟| 人人爽久久涩噜噜噜网站| 欧美在线性爱视频| 美女视频久久黄| 日韩精品中文字幕在线| 成人做爽爽免费视频| 日本精品免费一区二区三区| 欧美高清视频在线| 在线观看日韩av| 高跟丝袜一区二区三区| 久久99久久99精品免观看粉嫩| 成人av.网址在线网站| www.久久色.com| 亚洲色图50p| 在线播放日韩av| 久久视频免费在线播放| 国产欧洲精品视频| 亚洲在线视频福利| 68精品国产免费久久久久久婷婷| 亚洲精品少妇网址| 亚洲第一视频网站| 亚洲一区二区三区在线免费观看| 久久久亚洲影院你懂的| 亚洲国产另类 国产精品国产免费| 亚洲欧美精品中文字幕在线| 亚洲成人999| 91在线精品播放| 欧美与黑人午夜性猛交久久久| 国产xxx69麻豆国语对白| 亚洲电影免费观看高清完整版在线观看| 在线看国产精品| 国产美女久久精品香蕉69| 色婷婷av一区二区三区在线观看| 亚洲国产日韩欧美综合久久| 欧美性猛交xxxx免费看| 日本伊人精品一区二区三区介绍| 欧美在线视频导航| 亚洲国产一区自拍| 日韩电影中文字幕| 久久久黄色av| 欧美日韩在线另类| 国产成人黄色av| 伊人久久久久久久久久久久久| 亚洲影院色在线观看免费| 精品福利在线观看| 九九久久久久99精品| 国产精品久久久久久久久免费看| 国产成人精品久久亚洲高清不卡| 日韩电影免费观看中文字幕| 国产一区二区香蕉| 1769国内精品视频在线播放| 一区二区欧美激情| 性欧美在线看片a免费观看| 国产福利精品av综合导导航| 欧美亚洲成人免费| 亚洲高清免费观看高清完整版| 亚洲精品久久久久久久久久久久久| 亚洲人成电影网站色| 日韩一区二区欧美| 在线观看成人黄色| 最好看的2019年中文视频| 一本一本久久a久久精品综合小说| 久久久久国色av免费观看性色| 亚洲精品电影在线| 成人免费激情视频| 亚洲天堂日韩电影| 亚洲天堂免费在线| 中文字幕九色91在线| 久久久久久尹人网香蕉| 国内精品国产三级国产在线专| 8090理伦午夜在线电影| 精品香蕉在线观看视频一| 国产日韩一区在线| 91精品国产电影| 久久精品国产欧美亚洲人人爽|