通过ASP或ASPNet确定基于Web的JPG图像的DateLastModified

时间:2013-11-24 15:33:09

标签: asp.net asp-classic vbscript

在ASP页面或ASPNet页面中使用VBS,我想确定创建(或修改)基于Web的远程JPG文件的日期。例如,通过FTP编辑到网站的网络摄像头。因此,使用JPG的URL,我如何才能获得该JPG的属性。

在下面的代码中,我尝试检索图像文件并将其保存到我的网站网站中,但是我在“ objADOStream.SaveToFile(strSave,2)”行中出现错误,

“System.Runtime.InteropServices.COMException:写入文件失败。”

我知道我对该文件夹有读/写权限,因为我经常在那里创建/删除.txt文件。

  • 您能否评论我无法保存此文件的原因?
  • 假设我保存它会保留原始文件属性吗?
  • 或者,甚至可能更好,是否有更简单的方法来获取此照片文件信息?

这是我拼凑在一起检索并保存文件的代码

 dim strURL, strSave, objXMLHTTP, objADOStream, objFSO

 strURL = "http://www.somewhere.com/Photo.jpg"
 strSave = Server.MapPath("/xxx/photos/") & "photo.jpg"

 objXMLHTTP = CreateObject("MSXML2.XMLHTTP")

 objXMLHTTP.open ("GET", strURL, false)
 objXMLHTTP.send()

 if err.number=0 then

if objXMLHTTP.readystate = 4 then

  If objXMLHTTP.Status = 200 Then

    objADOStream = CreateObject("ADODB.Stream")
    objADOStream.Open
    objADOStream.Type = 1 

    objADOStream.Write (objXMLHTTP.ResponseBody)
    objADOStream.Position = 0       

    objFSO = Createobject("Scripting.FileSystemObject")

    If objFSO.Fileexists(strSave) Then objFSO.DeleteFile (strSave)
    objFSO = Nothing

    objADOStream.SaveToFile (strSave,2)
    objADOStream.Close
    objADOStream = Nothing
  End If
end if
 end if
 objXMLHTTP = Nothing

...谢谢RDK

1 个答案:

答案 0 :(得分:0)

如果您只需要知道文件的最后修改日期,而不是发送GET请求,请发送HEAD请求。在您的代码中,使用GET更改HEAD,并在发送后获取

objXMLHTTP.getResponseHeader("Last-Modified") 

服务器可能不会发送此信息,因此您无法知道此数据。

相关问题