|
| 当前位置:首页>>网站开发>>asp>>正文 |
| asp实现语音上传 |
| 文章出处:联动天下 作者:联动天下 发布时间:2006-12-08 |
| |
<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>
|
| [返回顶部↑]
[推荐好友]
[查看评论] |
|
|
|
|
|
|
|