<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      無組件圖片與文本同步存入數據庫的最容易的方法

      [摘要]一:前言 首先,沒有料到圖片與文本的上傳會引起這么大的注意。上一篇貼子(Id=435906)貼出后,有不少人來信說看不懂;蚴侨匀徊荒軐崿F。我就以一種完全簡單的手法。完成無組件的文本與圖片上傳數...
      一:前言

         首先,沒有料到圖片與文本的上傳會引起這么大的注意。上一篇貼子(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               //** 這里是關鍵,當form2在提交的過程中時,即活form1的提交
          form1.submit             //**所以我們這里用了兩個表單,但只用一個提交就可以了。
      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")
      %>

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



      日韩精品一区二区三区高清