Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5

    Salvare immagini in locale da un url

    Ciao,
    dovrei realizzare una pagina in codice ASP classico per fare in modo che dato l'url di una immagine tipo "http://utenti.html.it/common/img/logo_forum.gif" questa immagine venga salvata in locale.

    Ho trovato questo sul forum
    codice:
    Function GetBinaryUrl(Url)
    Dim Http
    	Set Http = Server.CreateObject("Microsoft.XMLHTTP")
    	Http.open "GET",Url,False
    	Http.Send()
    	GetBinaryUrl = Http.ResponseBody
    	Set Http=Nothing
    End Function
    
    Function SaveUrlIn(Url)
    Dim LocalPath
    	Set Stream = Server.CreateObject("ADODB.Stream")
    	Stream.Type=1
    	Stream.Open()
    	Stream.Write GetBinaryUrl(Url)
    	Url = Replace(Url,"/","\")
    	LocalPath = Server.MapPath("/dir/nomefile.ext") 
    	Stream.SaveToFile LocalPath,2
    	Stream.Close()
    	Set Stream = Nothing
    End Function
    
    SaveUrlIn "http://www.villalba1.org/img/contatto.gif"
    ma non funziona, mi da errore alla riga
    codice:
    Http.open "GET",Url,False
    Tipo di errore:
    msxml4.dll (0x80070057)
    Parametro non corretto.
    Se qualcuno sa aiutarmi....
    Grazie

  2. #2
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    ma in locale vuol dire sul server, o sul PC di chi naviga il sito???

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5
    sul server su cui risiede la pagina asp

  4. #4
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    Puoi provare, ma non l'ho mai fatto, a leggere il contenuto del file immagine con XMLHTTP e vedere se ti fa una lettura di tipo binario. In tal caso dopo averlo letto non ti resta che scriverlo in un file con il medesimo nome.

    Il server è tuo o sei in hosting?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5
    il server è mio, e il codice che ho riportato dovrebbe fare proprio quello che dici ma non lo fa, senza nemmeno provare a fare la richiesta, e' come se ci fosse un errore di sintassi

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Prova con il più recente:
    Set Http = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

    Roby

  7. #7
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    se il server è tuo puoi pensare di installare WGET ed eseguirlo da ASP.

    WGET è fatto apposta per questo tipo di operazioni.


    In alternativa prova a usare l'oggetto Server.XMLHTTP anzichè Microsoft.XMLHTTP

  8. #8
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    per WGET il codice è questo:

    codice:
    
    <%
    	link = "http://utenti.html.it/common/img/logo_forum.gif"
    	Set Shell = new cShell
    	Response.Write("Execute"& Shell.Execute("C:\wget\wget.exe --output-document=/inetpub/www.tuosito.com/file/nomefile.txt " & link) & "
    ")
    	'testo = Shell.Output
    	Set Shell = Nothing
    %>
    questa è la classe CSHELL

    codice:
    <%
    Class cShell
    
    Public WScript
    Public Output
    Public Error
    
    Private Sub Class_Initialize()
    	Set WScript = Server.CreateObject("WScript.Shell")
    End Sub
    
    Public Function Execute(commandLine)
    	Dim oExec
    	on error resume next
    	Set oExec = WScript.Exec(commandLine)
    	If Err.number <> 0 then
    		Response.Write("<p style='font-family:verdana;font-size:11px'>Shell Error
    "& Err.Description & "
    CommandLine : " & commandLine)
    		Response.End
    	end if
    	on error goto 0
    	Error = False
    	Output = oExec.StdOut.ReadAll()
    	if Output="" then
    		Output = oExec.StdErr.ReadAll()
    		Error = True
    	End If
    	Execute = Error
    End Function
    
    Private Sub Class_Terminate()
    	Set WScript = nothing
    End Sub
    
    End Class
    %>
    Devi anche dare i permessi di esecuzione di WGET all'utente IUSR_nomemacchina
    e i permessi di scrittura dove intendi scrivere il file di output.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    5
    Volevo continuare con l'altra strada, anche con MSXML2.ServerXMLHTTP.6.0 l'errore rimane lo stesso, cambia solo il nome della dll

    msxml6.dll (0x80070057)
    Parametro non corretto.

  10. #10
    Utente di HTML.it L'avatar di barney09
    Registrato dal
    Dec 2000
    Messaggi
    1,296
    è installato il componente MSXML?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.