Hai trovato ciò che cercavi?

Hai trovato ciò che cercavi?

Clicca sui banner

ci vogliono al massimo 3 secondi.



giovedì 15 novembre 2012

Contollare esistenza di un file remoto, in ASP classico

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