Scripting.FileSystemObject
поддерживает доступ только к файлам из файловой системы и не может определить, существует ли файл по определенному внешнему URL-адресу. Если URL-адрес находится в текущем веб-приложении, которое вы можете использовать;
Server.MapPath(relative_path)
, который, если передан относительный путь к серверу, т.е. "/photos"
, вернет физический путь к файлу на сервере, который вы затем сможете проверить с fs.FileExists()
.
Но если URL является внешним, у вас все еще есть варианты. С помощью серверного XHR запроса к URL-адресу и на основании ответа определите его существование. Мы также можем сделать это более эффективным, только спрашивая, есть ли он там, и не возвращая контент, что мы можем сделать, используя запрос HEAD
.
Вот пример возможной реализации;
<%
Function CheckFileExists(url)
Dim xhr: Set xhr = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
With xhr
Call .Open("HEAD", url)
Call .Send()
CheckFileExists = (.Status = 200)
End With
End Function
If CheckFileExists("https://cdn.sstatic.net/Img/unified/sprites.svg?v=fcc0ea44ba27") Then
Call Response.Write("File Exists")
Else
Call Response.Write("File Doesn't Exist")
End If
%>
Вывод:
File Exists
Полезные ссылки