首頁 >資料庫 >mysql教程 >无组件图片与文本同步存入数据库的最简单的办法

无组件图片与文本同步存入数据库的最简单的办法

WBOY
WBOY原創
2016-06-07 15:12:011133瀏覽

一:前言 首先,没有料到图片与文本的上传会引起这么大的注意。上一篇贴子(Id=435906)贴出后,有不少人来信说看不懂。或 是仍然不能实现。我就以一种完全简单的手法。完成无组件的文本与图片上传数据库所有过程。希望能帮助所有对此有疑 问的网友。 二:准备

一:前言

   首先,没有料到图片与文本的上传会引起这么大的注意。上一篇贴子(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(具体代码如下)
    




File Upload





Please choose a picture to upload:
















3-2 兵分两路来处理数据。
    首先,文本很简单。

uptext.asp (代码如下)


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


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
%>


以下是你的上传资料。

文本一:

文本二:


你的图像:
无组件图片与文本同步存入数据库的最简单的办法>           ’注意这里,这才是关键。他可以实现网页图像与文本
                                          ’共存。


幕后页面:showimg.asp        (说他是幕后的页面,因为他潜伏在主页面里。看上是一个页面一样)


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")
%>

(全文完:希望本文能帮助那些急于想解决本类问题的网友。)
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn