asp实现语音上传的实例代码分享

东坡下载 2011年07月09日 11:26:34

      下面提供给大家分享的是asp实现语音上传的实例代码,希望能够帮助到大家。

      <script language="java script">
      function openScript(url, width, height){
      var Win = window.open(url,"openScript",'width=' + width + ',height=' + height + ',resizable=1,scrollbars=yes,menubar=no,status=yes' );
      }
      </script>
      <form action="save.asp" method="POST" enctype="multipart/form-data">
      <tr>
      <td width="17%" height="66">选择语音</td>
      <td height="66" colspan="5">
      <input type="file" name="wav" class="lan">
      <input type="submit" name="Submit4" value="确定上传" class="lan"> <input name="button" type="button" class="bu" value="有声档案" onClick="openScript('../play.asp?id=<%=session("id")%>','','scrollbars=no,resizable=no,width=340,height=200')"></td>
      </tr>
      </form>

      表 sound 字段 id numeric 9 (自增) wav image 16 wavinfo varchar 50 wavsize numeric
      save.asp '将声音文件写入数据库

      <%@ Language=VBScript %>
      <!--#include file="../conn.asp"-->
      <%
      Response.expires=0
      Server.ScriptTimeout =3600
      call main()
      sub main()
      FormSize = Request.TotalBytes
      FormData = Request.BinaryRead( FormSize )
      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
      Wav = WavUp(FormSize,Formdata)
      strTXT=mid(formdata,instr(formdata,Wav)+len(Wav)+1)
      strTXT=bin2str(strTXT)
      'wavinfo=findVar("wavinfo",strTXT)
      set RS=server.createobject("ADODB.recordset")
      SQL="select wav,wavsize,wavinfo from sound"
      RS.Open SQL,conn,1,3
      RS.Addnew
      RS("wavinfo")=wavinfo
      RS("wavsize")=dataend-2
      if Len(Wav)>1 then
      RS("wav").Appendchunk Wav
      end if
      RS.Update
      RS.Close
      set RS=nothing
      conn.close
      set conn=nothing
      'response.Write(Request.ServerVariables ("REMOTE_ADDR"))
      response.Write("<script language='java script'>alert('语音上传成功了,请返回!');window.location.reload('sound.asp');</script>")
      response.end
      end sub
      Function bin2str(binstr)
      Dim varlen,clow,ccc,skipflag
      skipflag=0
      ccc = ""
      varlen=LenB(binstr)
      For i=1 To varlen
      If skipflag=0 Then
      clow = MidB(binstr,i,1)
      If AscB(clow) > 127 Then
      ccc =ccc & Chr(AscW(MidB(binstr,i+1,1) & clow))
      skipflag=1
      Else
      ccc = ccc & Chr(AscB(clow))
      End If
      Else
      skipflag=0
      End If
      Next
      bin2str = ccc
      End Function
      Function WavUp(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
      WavUp=midb(formdata,datastart,dataend)
      End Function
      Function findVar(varName,strTxt)
      startPos=1
      strLen=len(varName)+2
      for i=1 to len(strTXT)
      varStart=instr(startPos,strTXT,varName)+strLen+3
      varEnd=instr(varStart,strTXT,"--")-2
      varValLen=varEnd-varStart
      inVar=mid(strTXT,varStart,varValLen)
      findVar=findVar & inVar
      startPos=instr(varStart,strTXT,varName)
      if startPos=0 then exit for
      findVar=findVar & ","
      next
      End function
      %>


      wav.asp '读取数据

      <%@ Language=VBScript %>
      <% session.timeout=25%>
      <%
      set conn=server.CreateObject("adodb.connection")
      connstr="Provider=sqloledb.1;Persist Security Info=False;User ID=sa;Initial Catalog=database;Data source=127.0.0.1;pwd="
      conn.open connstr
      if err.number<>0 or err then
      err.clear
      response.write Err.Description
      response.end
      %>
      <script language="java script">
      alert("网络现在繁忙,数据库连接发生错误,请等待几分钟再访问。")
      </script>
      <%end if%>
      <%
      dim RS,id
      set RS=Server.CreateObject("ADODB.Recordset")
      SQL="select wav from sound where id='"&request("id")&"'"
      RS.open SQL,conn,1,1
      Response.ContentType = "audio/x-wav"
      Response.BinaryWrite RS("wav").getChunk(7500000)
      'RS.close
      'set RS=nothing
      conn.close
      set conn=nothing
      %>

      play.asp '试听

      <!--<embed src="wav.asp?ID=6%>" AUTOSTART="true" LOOP="TRUE" HEIGHT="45" WIDTH="320" VOLUME="100"><br>-->
      <!-- Set ShowControls, ShowDisplay, ShowStatusBar 的值设定为 0,则不会显示在视频窗口下相对应的事物 -->
      <OBJECT ID="NSPlay" WIDTH=300 HEIGHT=145 classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701" standby="加载 Microsoft Windows Media Player 组件..." type="application/x-oleobject">
      <PARAM NAME="FileName" VALUE="wav.asp?id=<%=request("id")%>">
      <PARAM NAME="ShowControls" VALUE="1">
      <PARAM NAME="ShowDisplay" VALUE="1">
      <PARAM NAME="ShowStatusBar" VALUE="1">
      <PARAM NAME="AutoSize" VALUE="1">
      <embed src="wav.asp?uid=<%=request("id")%>" width="320" height="125" type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/Downloads/Contents/Products/MediaPlayer/" filename="husteradio.asx" Name="NSPlay" ShowControls="1" ShowDisplay="1" ShowStatusBar="0">
      </OBJECT>