<%
'----------Obtenga el contenido de forma remota y almacene el contenido en la computadora local, ¡incluidos los archivos! ----------
'-----------------------Usando xmlhttp y adodb.stream-----------------
'En caso de error, reanudar siguiente
'----------------------------------Definir formato de salida------------ ------ ---------------
ruta=solicitud(ruta)
si camino = entonces
ruta=http://pcqc.86516.com/index.asp
'La URL definida aquí es Baidu, tenga en cuenta que debe haber un sufijo de archivo
terminar si
sPath = Ruta
si left(lcase(ruta),7) <> http:// entonces
'------------Si no hay http al frente, es un archivo local y se entrega a LocalFile para su procesamiento------------
Archivo local (ruta)
demás
'--------------------------De lo contrario, es un archivo remoto y será manejado por RemoteFile---------- --------
Archivo remoto (ruta)
terminar si
'Respuesta.Escribir error.Descripción
'------------Función de procesamiento----------
subarchivolocal(ruta)
'------------------Si es un archivo local, simplemente salte a la página------------------ -
'Respuesta.Ruta de redireccionamiento
¡Ocurrió un error en Response.write!
Subtítulo final
SubRemoteFile(sPath)
'--------------------------------Función de procesamiento remoto de archivos------------ ----------------- ----------
Nombre de archivo = Obtener nombre de archivo (ruta_s)
'---------------------GetFileName es el proceso de convertir una dirección en un nombre de archivo calificado-------------
Nombre de archivo = Server.MapPath(Caché/ & Nombre de archivo)
Establecer objFso = Server.CreateObject(Scripting.FileSystemObject)
'Respuesta.Escribir nombre de archivo
si objFso.FileExists (Nombre de archivo) Entonces
'------------Comprueba si se ha accedido al archivo, si es así, simplemente salta---------------------
Response.Redirect cache/ & GetFileName(ruta)
Demás
'---------------------De lo contrario, utilice la función GetBody para leerlo primero---------------------
'Respuesta.Escribir ruta
t = ObtenerCuerpo(Ruta)
'-----------------Usar método binario para escribir en el navegador--------------------------------- -------- --
Respuesta.BinaryWrite t
Respuesta.Flush
'-----------------Búfer de salida------------------------------ --- ----------
Guardar archivo t, Obtener nombre de archivo (ruta)
'------------------Almacenar en caché el contenido del archivo en una ruta local para el próximo acceso----------
terminar si
Establecer objFso = Nada
Subtítulo final
Función GetBody(url)
'----------------------Esta función es una función para obtener contenido de forma remota----------------- ---
'en caso de error, reanudar siguiente
'Respuesta.Escribir URL
Establecer recuperación = CreateObject(Microsoft.XMLHTTP)
'----------------------Crear objeto XMLHTTP--------------------------------- -----
Con recuperación
.Abrir Obtener, URL, Falso, ,
'------------------Enviar usando Get, método asincrónico-----------------------
.Enviar
'GetBody = .TextoRespuesta
ObtenerCuerpo = .ResponseBody
'------------------La función devuelve el contenido obtenido--------------------------
Terminar con
Establecer recuperación = nada
'respuesta.Escribir error.Descripción
Función final
Función ObtenerNombreDeArchivo(cadena)
'--------------------------Esta función es una función de nombre de archivo calificado----------------------- - ---
cadena = Reemplazar(lcase(cadena),http://,)
cadena = Reemplazar(lcase(cadena),//,/)
cadena = Reemplazar (cadena,?,)
cadena = Reemplazar (cadena,&,)
cadena = Reemplazar (cadena,/,)
cadena = reemplazar(cadena,vbcrlf,)
GetFileName = cadena
Función final
sub GuardarArchivo(str,fNombre)
'--------------------------Esta función es una función que guarda el contenido de la transmisión------------- - ----
'en caso de error, reanudar siguiente
Establecer objStream = Server.CreateObject(ADODB.Stream)
'------------Para crear un objeto ADODB.Stream, se requiere ADO versión 2.5 o superior---------
'objStream.Type = adTypeBinary
objStream.Tipo = 1
'---------------------Abrir en modo binario-------------------------------- -----
objStream.Open
objstream.write cadena
'--------------------------Escribe el contenido de la cadena en el buffer---------------- ---------- ----
'respuesta.Escribe fname
'camino de atencion
objstream.SaveToFile E:/webroot/pcqc/vip/UploadFile/cache/&fName,2
'objstream.SaveToFile d:/cache/ & fName,adSaveCreateOverWrite
'--------------------------Escribe el contenido almacenado en el buffer en un archivo------------------ -------- ----
'respuesta.BinaryWrite objstream.Read
objstream.Cerrar()
establecer objstream = nada
'----------------------Cierra el objeto y libera recursos-------------------- - ----
'respuesta.Escribir error.Descripción
Fin sub
función guardar imagen (de, al archivo)
geturl tenue,objStream,imgs
geturl=recortar(de)
imgs=gethttppage(geturl)'El proceso de obtención del contenido específico de la imagen
Establecer objStream = Server.CreateObject(ADODB.Stream)' Para crear un objeto ADODB.Stream, se requiere ADO 2.5 o superior
objStream.Type =1'Abrir en modo binario
objStream.Open
objstream.write imgs' escribe el contenido de la cadena en el búfer
objstream.SaveToFile server.mappath(tofile),2': escribe el contenido almacenado en el búfer en el archivo
objstream.Close()'Cerrar el objeto
establecer objstream = nada
función final
%>