ASP问题求解决

[复制链接]
查看11 | 回复1 | 2010-6-6 14:11:53 | 显示全部楼层 |阅读模式
将水印程序添加到里面,地方是CSDN里的一个人添加的,但是却有错误,说是server.mappath()不能用绝对地址,要用虚拟地址,怎么解决啊、、???
Sub ImgWriter(SaveImgPath)
'添加水印
dim jpeg,Text
Text = "原图版权.你的网站名"
''水印字符串
Set Jpeg = Server.CreateObject("Persits.Jpeg")

Jpeg.Open Server.MapPath(SaveImgPath)
dim x,y'水印在右下角位置
x = Jpeg.Width

y = Jpeg.Height

Jpeg.Canvas.Font.Color = &HFFFFFF ''水印字体颜色
Jpeg.Canvas.Font.Family = "宋体"''水印字体 如“宋体”
Jpeg.Canvas.Font.Size = 13
''水印字体大小 数值如:18
Jpeg.Canvas.Font.ShadowColor = &H111111''水印背景颜色
Jpeg.Canvas.Font.ShadowXoffset = 1 ''背景色X坐标偏移像素值
Jpeg.Canvas.Font.ShadowYoffset = 1 ''背景色Y坐标偏移像素值
Jpeg.Canvas.Font.Bold = false
''True=粗体 False=正常
Jpeg.Canvas.Print x,y,Text
''文字水印位置 x,y
Jpeg.Save Server.MapPath(SaveImgPath)''保存加水印后的图片
Jpeg.close
set Jpeg=nothing
End Sub
========================
'保存远程图片
function getHTTPPage(url)

on error resume next

dim httpobjs

set httpobjs=server.createobject("Microsoft.XMLHTTP")'使用xmlhttp的方法来获得图片的内容

httpobjs.open "GET",url,false

httpobjs.send()

if httpobjs.readystate4 then

exit function

end if

getHTTPPage=httpobjs.responseBody

set httpobjs=nothing

if err.number0 then err.Clear
end function
function saveimage(from,tofile)

dim geturl,objStream,imgs

geturl=trim(from)

imgs=gethttppage(geturl)'取得图片的具休内容的过程

Set objStream = Server.CreateObject("ADODB.Stream")'建立ADODB.Stream对象,必须要ADO 2.5以上版本

objStream.Type =1'以二进制模式打开

objStream.Open

objstream.write imgs'将字符串内容写入缓冲

objstream.SaveToFile tofile,2'-将缓冲的内容写入文件

objstream.Close()'关闭对象

set objstream=nothing
end function
function saveAndReplaceRemoteImg(getContent,savePath,daysPath,imgPreName)

retstr=initStr(getContent)

arrimg=split(retstr,"||")'分割字串,取得里面地址列表

allimg=""

newimg=""


for i=1 to ubound(arrimg)

if arrimg(i)"" and instr(allimg,arrimg(i))<1 then'看这个图片是否已经下载过

fname=cstr(i&mid(arrimg(i),instrrev(arrimg(i),".")))

call saveimage(arrimg(i),savePath&imgPreName&"_"&fname)

【 ImgWriter(savePath&imgPreName&"_"&fname)】添加到了这里

allimg=allimg&"||"&arrimg(i)

newimg=newimg&"||"&SiteUrl&"/"&Imgsavedir&"/"&dayspath&"/"&imgPreName&"_"&fname
end if

next

arrnew=split(newimg,"||")'取得原来的图片地址列表

arrall=split(allimg,"||")'取得已经保存下来的图片的地址列表

for i=1 to ubound(arrnew)'执行循环替换原来的地址

getContent=replace(getContent,arrall(i),arrnew(i))
ImgWriter(arrall(i))

next

saveAndReplaceRemoteImg=getContent
end function
现在的情况是:水印图片上加了,但是文章发布却失败了,错误信息如下:
Persits.Jpeg.1 (0x800A0002)
文件名、目录名或卷标语法不正确。
/wy/inc/SaveRemoteFile.asp, 第 10 行
----------------------------------------------------------------------------
这个就是第十行 Jpeg.open SaveImgPath

回复

使用道具 举报

千问 | 2010-6-6 14:11:53 | 显示全部楼层
Jpeg.Open SaveImgPath应该就行了。==============输出这个路径看看,还是路径不对的原因。应该是完整的正确的路径,类似d:\aaa\bbb\cc.jpg 这样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行