成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發編程>>ASP>>新聞內容
無組件圖片與文本同步存入數據庫的最簡單的辦法
作者: 發布時間:2003-10-7 14:38:21 文章來源:

一、前言

首先,沒有料到圖片與文本的上傳會引起這么大的注意。上一篇貼子(Id=435906)貼出后,有不少人來信說看不懂。或
是仍然不能實現。我就以一種完全簡單的手法。完成無組件的文本與圖片上傳數據庫所有過程。希望能幫助所有對此有疑
問的網友。

二、準備工作

按照慣例,我先將我的測試環境告訴大家。
系統:Win98se + pws + asp
編程環境:Visual Interdev 6.0
數據庫:Access2000 (因為網友問的最多的都是Access2000的問題。)
建一個庫:access2000中,先建好一個Test.mdb的數據庫。具體有四個字段。
id | text1 | text2 | img
自動編號 文本 文本 OLE對象 ’如果是sql server 則選擇(image即可)

三、Are you ready ,Go!!!

3-1.建上傳表單:
我們知道,圖像與文本是兩種不同制式的文件(二進制,流式文本)而如果要同一表單提交的話,(file格式提交)則
我們獲取時就不能用原來的方法request.form而必須用equest.TotalBytes來獲得所有的提交資料。但這時兩種格式的文件
混合在一起比較難分。我的上一貼已經告訴大家用二進制的方法來分開這些資料。但十分麻煩,要用到許多二進值的函
數,所以許多網友來信問我有沒有更簡單的方法,好。我可以告訴大家,有!而且保證下面的方法保證一學就會。(這種方
法很另類但偉人說過白貓,黑貓。能上網的就是好貓!)

upload.asp(具體代碼如下)

<% @ language=vbscript %>
<html>
<head>
<meta name="VI60_defaultClientScript" content="VBScript">
<title> File Upload </title>
<script ID="clientEventHandlersVBS" LANGUAGE="vbscript">
<!--
Sub form2_onsubmit file://** 這里是關鍵,當form2在提交的過程中時,即活form1的提交
form1.submit file://**所以我們這里用了兩個表單,但只用一個提交就可以了。
End Sub
-->
</script>
</head>
<body>

<form name="form1" ENCTYPE="multipart/form-data" ACTION="upimage.asp" METHOD="POST" target="_blank">
Please choose a picture to upload: <br>
<input NAME="picture" TYPE="FILE"> <br>
</form>

<form name="form2" action="uptext.asp" method="post">
<input type="text" name="text1"><br>
<input type="text" name="text2"><br>
<input type="submit" value="提交">
</form>

</body>
</html>

3-2 兵分兩路來處理數據。
首先,文本很簡單。

uptext.asp (代碼如下)

<% @ language=vbscript %>
<%
strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")

text1=request.form("text1")
text2=request.form("text2")
response.write text1
response.write text2

set rs=Server.CreateObject("adodb.recordset")
sql="SELECT top 1 * FROM imgtable ORDER BY id DESC" ’這里的意思是選擇最后一個Id,既剛剛被改動
rs.Open sql,strconn,1,3 ’就是你上傳的圖像的兩個文本字段。

rs("text1")=text1 ’注意,這里是改動不是添加,所以不用addnew。
rs("text2")=text2
rs.Update
rs.Close
%>
接著,來處理圖像。
upimage.asp (具體代碼如下)

<%
FormSize = Request.TotalBytes ’得到數據
FormData = Request.BinaryRead( FormSize )

function ImageUp(formsize,formdata) ’這個函數的功能是截取其中的圖像部分。
bncrlf=chrb(13) & chrb(10) ’做成函數后。以后你可以自己隨意使用了。
divider=leftb(formdata,instrb(formdata,bncrlf)-1)
datastart=instrb(formdata,bncrlf&bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
imageup=midb(formdata,datastart,dataend)
end function

Image=ImageUp (FormSize,Formdata) ’這里就是圖像部分了。

set rs=server.CreateObject("adodb.recordset")
strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
sql="SELECT * FROM imgtable"
rs.Open sql,strconn,1,3

rs.AddNew ’因為表單二在表單一提交的過程中下提交了。
rs("img").appendchunk Image ’所以這里是添加。
rs.Update
rs.Close


response.contenttype="image/gif"
response.binarywrite imageup(formsize,formdata) ’這里是顯示圖像。表示成功!

%>

啊?!?!原來如此簡單!

四、“顯示,我要同頁顯示”
終于完成了圖文同步提交。(真的是同步嗎?不是嗎?是嗎? 唉,我們只是為了解決問題。何必當真哪?不
是 嗎?)
現在我們還要讓他同頁顯示出來。其實,這是同樣的思路。我們也用兩頁來完成。

主頁面:show.asp

<%@ Language=VBScript %>
<%
strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")

set rs=Server.CreateObject("adodb.recordset")
sql="SELECT top 1 * FROM imgtable ORDER BY id DESC"
rs.Open sql,strconn,1,3
%>
<html>
<body>
以下是你的上傳資料。<br>
文本一:<% Response.Write rs("text1") %><br>
文本二:<% Response.Write rs("text2") %><br>

你的圖像:
<img src=showimg.asp?id=<%=rs("id")%>> ’注意這里,這才是關鍵。他可以實現網頁圖像與文本
</body> ’共存。
</html>

幕后頁面:showimg.asp (說他是幕后的頁面,因為他潛伏在主頁面里。看上是一個頁面一樣)

<%@ Language=VBScript %>
<%
strconn="driver={microsoft access driver (*.mdb)};dbq="&server.MapPath("test.mdb")
id=Request("id")
set rs=server.CreateObject("adodb.recordset")
sql="SELECT * FROM imgtable where id="&id
rs.Open sql,strconn,1,3
response.contenttype="image/gif"
Response.BinaryWrite rs("img")
%>

(全文完:希望本文能幫助那些急于想解決本類問題的網友。)


最新更新
·數據庫被掛馬的ASP處理方法
·ASP快速獲取遠程文件大小的方
·用ASP屏蔽迅雷和旋風下載工具
·解決ASP中傳送中文參數亂碼的
·ASP+AJAX做類似Google的搜索
·ASP的一個非常棒的Debug類(
·ASP中常用的服務器檢測源代碼
·優化ASP中執行SQL效率的五個
·ASP種msxml3.dll 800c0005錯
·掛QQ的ASP版本網頁源代碼
相關信息
放生
愚愛
夠愛
觸電
白狐
心跳
知足
犯錯
降臨
分愛
葬愛
光榮
畫心
火花
稻香
愛得起
這種愛
大丈夫
花蝴蝶
二缺一
小酒窩
下雨天
右手邊
安靜了
棉花糖
明天過后
邊做邊愛
擦肩而過
沒有如果
懷念過去
等一分鐘
越來越愛
寂寞暴走
你的承諾
Nobody
我們都一樣
永遠在身邊
天使的翅膀
原諒我一次
i miss you
原諒我一次
吻的太逼真
姑娘我愛你
做你的愛人
一定要愛你
飛向別人的床
愛上別人的人
感動天感動地
心在跳情在燒
不潮不用花錢
如何能把你忘記
即使知道要見面
愛上你是一個錯
最后一次的溫柔
愛上你是我的錯
怎么會狠心傷害我
親愛的那不是愛情
傷心時候可以聽情歌
愛上你等于愛上了錯
不是因為寂寞才想你
主站蜘蛛池模板: 张掖市| 罗田县| 周宁县| 南宫市| 叶城县| 湖州市| 株洲县| 临潭县| 饶阳县| 兴隆县| 宜兰县| 金华市| 宁强县| 衡阳县| 桦川县| 巴彦淖尔市| 论坛| 浪卡子县| 上栗县| 甘谷县| 虞城县| 商都县| 荥阳市| 宁晋县| 武城县| 女性| 巴彦淖尔市| 三台县| 饶阳县| 达尔| 巴林左旗| 尚志市| 哈尔滨市| 万安县| 固镇县| 依安县| 德阳市| 南汇区| 荆州市| 建昌县| 阆中市|