asp自动读取文件夹里文件的内容添加到数据库中
能不能实现文件夹里只要放入新文件,然后就能够自动把文件标题和内容添加进数据库中?然后添加过的做个限制,重名的不能添加如果可以请贴出代码,先谢谢各位高手了txt文件就行...
能不能实现文件夹里只要放入新文件,然后就能够自动把文件标题和内容添加进数据库中?
然后添加过的做个限制,重名的不能添加
如果可以请贴出代码,先谢谢各位高手了
txt文件就行 展开
然后添加过的做个限制,重名的不能添加
如果可以请贴出代码,先谢谢各位高手了
txt文件就行 展开
1个回答
展开全部
要有一个调用才能保存,不会自动触发.
比如上传文件,上传后调用[写好的这个保存到数据库的过程,才可以保存.
要添加不重名,可以在保存过程中先判断数据库里有没有该字段,有则跳出,没有就保存。
最安全的方法是限制文件标题这个字段无重复。添加重复文件的时候就会出错
Const db="" '数据库路径
Sub File2DB(fpath)
Dim cn,rs
Set cn=Server.createObject("ADODB.Connection")
cn.Provider="Microsoft.Jet.Oledb.4.0"
cn.Open Server.mapPath(db)
Dim fs,tfile,fname,fcont
Set fs=Server.CreateObject("Scripting.FileSystemObject")
tfile=fs.getFile(fpath)
fname=tfile.name
fcont=tfile.openAsTextStream().ReadAll
Set rs=cn.Execute("SELECT fname FROM thetable WHERE fname='"& fname &"'")
If rs.EOF Then
cn.Execute "INSERT INTO thetable(fname,fcont) values('"& fname &"','"& fcont &"')"
Else
Response.write "该文件内容库中已存在"
End If
End Sub
这是给定文件路径保存到数据库的方法。我是直接敲的,没做测试(测试还要建表,太麻烦)
有些地方还要做容错处理,你可以参考着修改一下
thetable 是数据库表名,fname,fcont是其中的两个字段,存文件名和内容
调用方法
Call File2DB(filepath) '传入新添加的文件路径
比如上传文件,上传后调用[写好的这个保存到数据库的过程,才可以保存.
要添加不重名,可以在保存过程中先判断数据库里有没有该字段,有则跳出,没有就保存。
最安全的方法是限制文件标题这个字段无重复。添加重复文件的时候就会出错
Const db="" '数据库路径
Sub File2DB(fpath)
Dim cn,rs
Set cn=Server.createObject("ADODB.Connection")
cn.Provider="Microsoft.Jet.Oledb.4.0"
cn.Open Server.mapPath(db)
Dim fs,tfile,fname,fcont
Set fs=Server.CreateObject("Scripting.FileSystemObject")
tfile=fs.getFile(fpath)
fname=tfile.name
fcont=tfile.openAsTextStream().ReadAll
Set rs=cn.Execute("SELECT fname FROM thetable WHERE fname='"& fname &"'")
If rs.EOF Then
cn.Execute "INSERT INTO thetable(fname,fcont) values('"& fname &"','"& fcont &"')"
Else
Response.write "该文件内容库中已存在"
End If
End Sub
这是给定文件路径保存到数据库的方法。我是直接敲的,没做测试(测试还要建表,太麻烦)
有些地方还要做容错处理,你可以参考着修改一下
thetable 是数据库表名,fname,fcont是其中的两个字段,存文件名和内容
调用方法
Call File2DB(filepath) '传入新添加的文件路径
追问
如果设置页面自动刷新,然后一直开着,效果跟自动触发差不多吧?
或者用VB脚本在windows任务计划添加定时任务,然后机器一直开着,效果也可以吧?
追答
你如果是一直刷新的话,要从文件夹里读所有文件,循环判断
这样过程里的部分语句要做下改动.
现在这个只是判断并存储一个文件
比较费资源
最好借助一个触发事件
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询