allwiki首页  
天下维客 你可以修改的网络知识库
首页最近更改优秀条目专题展示电脑科技词典软件学习网络知识电脑安全明星时尚天下百科
 

Asp实现语音上传

天下维客,你可以修改的网络知识库

Jump to: navigation, search
<script language="javascript"> 

 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='javascript'>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="javascript"> 
 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> 
 

参考资料

相关条目
编程 ASP
外部链接
Personal tools
工具
金银币拍卖 金币拍卖预展  金银币网店 熊猫金银币 生肖金银币