C#窗体应用程序怎么把一个上传视频到数据库

C#窗体应用程序怎么把一个上传视频到数据库,第1张

public void VideoToDB(string file)

{

FileStream fs = FileOpenRead(file);

byte[] bytes = new byte[fsLength];

fsRead(bytes, 0, bytesLength);

fsClose();

try

{

SqlCommand cmd = new SqlCommand ("update VideoTable set

VideoFile=@videos where UserNo='XXX'",conn);

cmdParametersAdd("@videos", SqlDbTypeImage)Value = bytes;

if (cmdConnectionState == ConnectionStateClosed)

cmdConnectionOpen();

cmdExecuteNonQuery();

}

finally

{

cmdConnectionClose();

}

}

我的理解,你问题的关键是程序如何往数据库里写入文件。对吧?无论是什么类型的文件。

这里有一些概念上的东西和你一起清理一下:

1)你需要了解你要用什么数据库?流行的企业级别的有:oracle,MSSQLServer, Sybase等,桌面的就更多了MSACCESS, MSSQL EXPRESS, SQLITE, POSTGRESQL等。无论什么数据库肯定会有一种数据类型为二进制的如oracle叫BLOB可以存放大量的数据流;

2)设计的核心就是通过C#前台程序的序列化功能将任何的文件以流的形式读入内存,转化成二进制文件流stream,然后通过特定的数据库API接口将该数据流写入数据库保存到上面提到的BLOB中

3)使用的时候,就从数据库里先把二进制数据流读出来,然后写入一个新文件里。

以上是设计概要,真正要实现一个软件会遇到很多具体问题,个人认为这是一个很好的将理论转化为实践的机会。多看看C#的技术书,有问题再问我。我会跟踪你的问题的!

这个分为两种情况吧!

情况一:Ueditor上传的和视频在富文本中,可以直接随着富文本字段保存到数据库中;

情况二:想单独保存上传的地址或者视频地址,可以修改Ueditor的代码,在上传时调用插入数据库方法,此情况不建议时间,会产生很多的垃圾数据;

<%

'responseBinaryWrite(requestBinaryRead(requestTotalBytes))''''''1

dim data, datalength,fstart,fend,tstart,tend,tinfo,flag,flaglen,tformname,tfile,tfilename,tfileparth,tfileext,sfilename

set formdata=serverCreateObject("scriptingdictionary")

set updata=serverCreateObject("adodbstream")

set tmpdata=serverCreateObject("adodbstream")

updatamode=3

updatatype=1

updataopen

updatawrite(requestBinaryRead(requestTotalBytes))

updataposition=0

data=updataread

datalength=updatasize

tcrlf=chrb(13) & chrb(10)

flag=leftb(data,instrb(data,tcrlf)-1)

fstart=lenb(flag)+2

flaglen=fstart

do

fend=instrb(fstart,data,tcrlf&tcrlf)+3

tmpdatatype=1

tmpdatamode=3

tmpdataopen

updataposition=fstart

updatacopyto tmpdata,fend-fstart

fstart=instrb(fend,data,flag)-1

tmpdataposition=0

tmpdatatype=2

tmpdatacharset="gb2312"

tinfo=tmpdatareadtext

'responseWrite tinfo''''''''''''''''''''''''''''''''''''''''''''''

tstart=instr(22,tinfo,"name=""")+6

'tstart=instr(tinfo,"name=""")+6'''''''''''''''''''''''''''''''''

tend=instr(tstart,tinfo,"""",1)

tformname=mid(tinfo,tstart,tend-tstart)

' responseWrite(tformname)'''''''''''''''''''''

'if instr(tinfo,"filename=""")>0 then'如果是文件

if instr(tstart,tinfo,"filename=""",1)>0 then

tmpdataclose

tmpdatatype=1

tmpdatamode=3

tmpdataopen

tstart=instr(tend,tinfo,"filename=""",1)+10

tend=instr(tstart,tinfo,"""",1)

tfile=mid(tinfo,tstart,tend-tstart)

'responseWrite tinfo''''''''''

'responseWrite "<br/>"''''''''''

'responseWrite("tstart="&tstart&"<br/>")''''''''''''''''''''''''''''''''''''

'responseWrite("tinfolen="&len(tinfo)&"<br/>")

'responseWrite("tend="&tend&"<br/>")

'responseWrite "tfile="&tfile&"<br/>"

'if tfile<>"" then'''''''''''''''''''''''''''''''''''''''''''''''''

' responseWrite("no kong")''''''''''''''

'else'''''''''''''''''''''''''''''

'responseWrite("kong")''''''''''

'end if'''''''''''''''''''''''''''''''''''''''''''''''''

if tfile<>"" then

tfilename=mid(tfile,instrrev(tfile,"\")+1)

tfilepath=left(tfile,instrrev(tfile,"\"))

tfileext=mid(tfile,instrrev(tfile,"")+1)

sfilename=GetRndFileName(tfileext)

'responseWrite(sfilename)''''''''''

updataposition=fend

updatacopyto tmpdata,fstart-2-fend

'responseBinaryWrite(tmpdata)''''''''2

tmpdatasavetofile serverMapPath("img_web")& "\" & sfilename,2

formdataadd tformname,sfilename

end if

else

tmpdataclose

tmpdatatype=1

tmpdatamode=3

tmpdataopen

updataposition=fend

updatacopyto tmpdata,fstart-fend-2

tmpdataposition=0

tmpdatatype=2

tmpdatacharset="gb2312"

formdataadd tformname,tmpdatareadtext

end if

fstart=fstart+flaglen

tmpdataclose

loop while (fstart+2)<datalength

set tmpdata=nothing

updataclose

set updada=nothing

'for each key in formdatakeys

' responseWrite "表单控件名称:"&key&"值:"& formdataitem(key)&"<br/>"

'next

Function GetRndFileName(sExt)

dim sRnd

randomize

sRnd=int(900rnd)+100

GetRndFileName=year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())&sRnd&""&sExt

end function

%>

给分吧

以上就是关于C#窗体应用程序怎么把一个上传视频到数据库全部的内容,包括:C#窗体应用程序怎么把一个上传视频到数据库、C#窗体编程中怎么向数据库中存入视频文件、如何把ueditor上传的图片视频等信息写入自己的数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10200826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存