Войти

Показать полную графическую версию : При скачивании файл тянется с кэша.


takemegently
18-03-2013, 14:53
Доброго дня.

При выполнении скрипта, для скачивания файла по ссылке:

SAVEFILE "http://****/1.crl", "AC", "certutil -split c:\1.crl", objExec32, "1.txt"
Sub SAVEFILE(URL1, Base_Name, Command, OBJ1, TXT)
strFileURL = URL1
URL = Split(StrReverse(strFileURL), "/")
basename = Base_Name & StrReverse(URL(0))

strHDLocation = "C:\" & basename
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()


If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 'adTypeBinary
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0 'Set the stream position to the start
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
'Set objFSO = Nothing
objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if

Set objXMLHTTP = Nothing
Set objShell = CreateObject("WScript.Shell")
strCommand1 = Command

Set OBJ1 = objShell.Exec(strCommand1)
While objExec1.Status = 0
WScript.Sleep 300
Wend
strOutput = Replace(OBJ1.StdOut.ReadAll, VbCrLf & "CertUtil: -split command completed successfully.", "")

With WScript.CreateObject("Scripting.FileSystemObject").CreateTextFile(TXT, True)
.Write strOutput
.Close
End With

End Sub


Возникает проблема, заключающаяся в том, что если по текущей ссылке уже находится обновленный файл с тем же именем, то невозможно его стянуть. Появляется лишь старый файл, как будто он выдергивается из кэша.
Будьте добры, помогите победить.

apozlevich
20-03-2013, 10:57
Скрипт просто скачивает файл? Попробуйте просто wget'ом, у него есть ключ --no-cache и много разных плюшек.

Iska
21-03-2013, 08:38
Возникает проблема, заключающаяся в том, что если по текущей ссылке уже находится обновленный файл с тем же именем, то невозможно его стянуть. Появляется лишь старый файл, как будто он выдергивается из кэша. »
takemegently, так и есть: XMLHttpRequest — 6.1 Проблема с кешированием в Microsoft Internet Explorer (http://ru.wikipedia.org/wiki/Xmlhttprequest#.D0.9F.D1.80.D0.BE.D0.B1.D0.BB.D0.B5.D0.BC.D0.B0_.D1.81_.D0.BA.D0.B5.D1.88.D0.B8.D1.8 0.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5.D0.BC_.D0.B2_Microsoft_Internet_Explorer).

Будьте добры, помогите победить. »
Например, попробуйте приложить заголовок:
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.setRequestHeader "If-Modified-Since", "Thu, 1 Jan 1970 00:00:00 UTC"
objXMLHTTP.send()




© OSzone.net 2001-2012