修改新闻时,选择“远程存图”时,出现“PicPath未定义”的错误信息,我在Function.asp中加入了:dim PicPath 但是仍然有此错误提示,怎么办啊?
另外一个问题:在采集新闻时,如果被采集的网站网页的图片采用根目录下的相对路径,图片远程保存将无法完成,如:
<IMG height=320 src="/Upload/2004_Pack/2003730141118.jpg" width=300 border=0>
但是网页路径为:/news/01.htm
这样采集将无法保存远程图片。。。。
第一个问题:
将admin/info/NewsModifyWords.asp和admin/info/NewsModifyPic.asp中的:
Dim ITitle,IClassID,INewsTemplet,IClickNum,IAddDate,INewsAddObj,INewsAddSql,TitleBoldstr,TitleUstr
改为:
Dim ITitle,IClassID,INewsTemplet,IClickNum,IAddDate,INewsAddObj,INewsAddSql,TitleBoldstr,TitleUstr,PicPath
即可!
第二个问题admin/Collect/inc/Function.asp
将:
'==================================================
'函数名:ReplaceRemoteUrl
'作 用:替换字符串中的远程文件为本地文件并保存远程文件
'参 数:NewsContent ------ 要替换的字符串
'代码修改:e趣娱乐网(海之鲲)http://www.1qu.net
'==================================================
Function ReplaceRemoteUrl(NewsContent,SaveFilePath)
Dim re,RemoteFile,RemoteFileurl,SaveFileName,SaveFilePath1,FileName,FileExtName,RemoteFiles,dtNow,FileCount,arrSaveFileName,SaveFileType,ranNum,SavePath2,FsoObj,SaveFileName1
FileCount = 0
Set re = New RegExp
re.IgnoreCase = True
re.Global=True
re.Pattern = "((http|https|ftp|rtsp|mms):(\/\/|\\\\){1}((\w)+[.]){1,}(net|com|cn|org|cc|tv|[0-9]{1,3})(\S*\/)((\S)+[.]{1}(gif|jpg|png|bmp)))"
Set RemoteFiles = re.Execute(NewsContent)
Set re = Nothing
For Each RemoteFile in RemoteFiles
Set RemoteFiles = Nothing
If FileCount = 0 Then
Response.Write "<b>正在保存远程文件……请稍候!<font color='red'>在此过程中请勿刷新页面!</font></b> "
Response.Flush
End If
dtNow = Now()
RemoteFileUrl = RemoteFile.Value
arrSaveFileName = Split(RemoteFileUrl, ".")
SaveFileType = arrSaveFileName(UBound(arrSaveFileName))
SavePath2 = Year(dtNow) & Right("0" & Month(dtNow), 2)
SaveFilePath= "/"&UpFiles &"/"& BeyondPicDir
SaveFilePath1 = SaveFilePath & "/" & SavePath2
Set FsoObj = Server.CreateObject("Scripting.FileSystemObject")
If Not FsoObj.FolderExists(Server.MapPath(SaveFilePath1)) Then
FsoObj.CreateFolder Server.MapPath(SaveFilePath1)
End If
Randomize
ranNum = Int(900 * Rnd) + 100
SaveFileName = Year(dtNow) & Right("0" & Month(dtNow), 2) & Right("0" & Day(dtNow), 2) & Right("0" & Hour(dtNow), 2) & Right("0" & Minute(dtNow), 2) & Right("0" & Second(dtNow), 2) & ranNum
SaveFileName1=SaveFileName& "." & SaveFileType
Call SaveRemoteFile(SaveFilePath1 &"/"& SaveFileName1, RemoteFileUrl)
NewsContent = Replace(NewsContent,RemoteFileurl, SaveFilePath1 &"/"& SaveFileName1)
Set FsoObj = Nothing
FileCount = FileCount + 1
Response.Write "·"
Response.Flush
Next
If FileCount > 0 Then Response.Write " <b><font color='blue'>共成功保存了 " & FileCount & " 张远程图片!</font></b><br>"
ReplaceRemoteUrl = NewsContent
End Function
替换为:
'==================================================
'函数名:ReplaceRemoteUrl
'作 用:替换字符串中的远程文件为本地文件并保存远程文件
'参 数:NewsContent ------ 要替换的字符串
'代码修改:e趣娱乐网(海之鲲)http://www.1qu.net
'==================================================
Function ReplaceRemoteUrl(NewsContent,SaveFilePath,SiteUrl)
Dim re,RemoteFile,RemoteFileurl,SaveFileName,SaveFilePath1,FileName,FileExtName,RemoteFiles,dtNow,FileCount,arrSaveFileName,SaveFileType,ranNum,SavePath2,FsoObj,SaveFileName1
FileCount = 0
Set re = New RegExp
re.IgnoreCase = True
re.Global=True
re.Pattern = "src=[''""]{0,1}((\S)+[.]{1}(gif|jpg|png|bmp))[''""]{0,1}\s"
Set RemoteFiles = re.Execute(NewsContent)
Set re = Nothing
For Each RemoteFile in RemoteFiles
Set RemoteFiles = Nothing
If FileCount = 0 Then
Response.Write "<b>正在保存远程文件……请稍候!<font color='red'>在此过程中请勿刷新页面!</font></b> "
Response.Flush
End If
dtNow = Now()
RemoteFileUrl = RemoteFile.Value
arrSaveFileName = Split(RemoteFileUrl, SiteUrl)
SaveFileType = arrSaveFileName(UBound(arrSaveFileName))
SavePath2 = Year(dtNow) & Right("0" & Month(dtNow), 2)
SaveFilePath= "/"&UpFiles &"/"& BeyondPicDir
SaveFilePath1 = SaveFilePath & "/" & SavePath2
Set FsoObj = Server.CreateObject("Scripting.FileSystemObject")
If Not FsoObj.FolderExists(Server.MapPath(SaveFilePath1)) Then
FsoObj.CreateFolder Server.MapPath(SaveFilePath1)
End If
Randomize
ranNum = Int(900 * Rnd) + 100
SaveFileName = Year(dtNow) & Right("0" & Month(dtNow), 2) & Right("0" & Day(dtNow), 2) & Right("0" & Hour(dtNow), 2) & Right("0" & Minute(dtNow), 2) & Right("0" & Second(dtNow), 2) & ranNum
SaveFileName1=SaveFileName& "." & SaveFileType
Call SaveRemoteFile(SaveFilePath1 &"/"& SaveFileName1, RemoteFileUrl)
NewsContent = Replace(NewsContent,RemoteFileurl, SaveFilePath1 &"/"& SaveFileName1)
Set FsoObj = Nothing
FileCount = FileCount + 1
Response.Write "·"
Response.Flush
Next
If FileCount > 0 Then Response.Write " <b><font color='blue'>共成功保存了 " & FileCount & " 张远程图片!</font></b><br>"
ReplaceRemoteUrl = NewsContent
End Function
把admin/Collect/Collecting.asp
ReplaceRemoteUrl(ContentStr,SaveImagePath)
替换为:ReplaceRemoteUrl(ContentStr,SaveImagePath,SiteUrl)
以上方法没有测试,请测试!
[此贴子已经被作者于2005-4-23 17:18:57编辑过]
没有效果,一样的,不能采集保存图片
[此贴子已经被作者于2005-4-24 11:35:21编辑过]
[此贴子已经被作者于2005-4-24 11:22:46编辑过]
你说的本来就没有图片呀
我测试过了,没有进行任何修改,也就是说我在三楼发的帖子,第二个问题根本就没有动,就完成了所有采集,你还原回去,然后按下面方法采集!