Dovevo controllare la presenza di un file, su un server remoto) per uno script in ASP classico, ecco come ho risolto:
nell'esempio controllo la presenza di un file di immagine, che in realtà sarebbe più facile da controllare, ma si può applicare a qualsiasi tipo di file.
<%
dim xmlhttp
dim targetsite
dim targeturl
Response.ContentType = "text/plain"
Response.Buffer = false
targetsite="http://www.ilnomedelsito.com/"
targeturl = targetsite & "images/immagine.jpg"
'get a component that can do a HEAD request
'for Windows NT this component may be downloaded at www.microsoft.com/xml
set xmlhttp = server.CreateObject("MSXML2.ServerXMLHTTP")
'************************
'Si controlla se il file esiste.
'************************
xmlhttp.open "HEAD", targeturl, false
'send HEAD request
xmlhttp.send
Response.Write xmlhttp.status & " - " & xmlhttp.statusText & vbCrlf
Response.Write xmlhttp.getAllResponseHeaders
%>
Resituisce:
200 - OK
Server: Microsoft-IIS/4.0
Connection: keep-alive
Date: Thu, 16 Sep 2004 15:08:44 GMT
Content-Type: image/gif
Accept-Ranges: bytes
Last-Modified: Wed, 15 Sep 2004 20:58:36 GMT
ETag: "8092b0c4669bc41:5cc3"
Content-Length: 2417
In realtà a noi serve solo il xmlhttp.status se è 200, tutto ok, se è ad esempio 404, il file non è stato trovato, e via discorrendo, 500 errore del server, etc etc, possiamo fare anche una gestione degli errori così...
Ad ogni modo, per chi non avesse bisogno di tutto questo script e volesse solo fare in modo che se su una pagina non esiste un'immagine venga visualizzata un'immagine "default" la cosa più semplice è usare il javascript:
<img src="cartella/immagineCheForseNonEsiste.jpg" onerror="javascript:this.src='cartella/immagineDefault.jpg' " />
Nessun commento:
Posta un commento